Improve response speed in OAI plugin requests
|Assignee:||José Raddaoui Marín||% Done:|
|Target version:||Release 2.3.0|
|Google Code Legacy ID:||Tested version:||2.3|
In big datasets, all OAI requests are timing out. This is caused because ACL checks are made over all top-level IOs with children:
To make this worst, we're calling that function in all OAI requests, once when the sets are not needed and twice when they are. The sets obtained in the following lines are not used anywhere in any of the requests:
After removing those lines the 'Identify' and 'ListMetadataFormats' OAI verbs work fine, but all the others call the QubitInformationObject::getCollections() function and cause timeouts. I think we don't need to get all the sets for the 'GetRecord' verb and for the others ('ListSets', 'ListRecords' and 'ListIdentifiers') at least we could use the request limits and resumption token to limit the results from that expensive function.