Task #9608
Improve response speed in OAI plugin requests
Status: | Verified | Start date: | 03/22/2016 | |
---|---|---|---|---|
Priority: | Medium | Due date: | ||
Assignee: | José Raddaoui Marín | % Done: | 0% | |
Category: | OAI-PMH | |||
Target version: | Release 2.3.0 | |||
Google Code Legacy ID: | Tested version: | 2.3 | ||
Sponsored: | No | Requires documentation: |
Description
In big datasets, all OAI requests are timing out. This is caused because ACL checks are made over all top-level IOs with children:
https://github.com/artefactual/atom/blob/qa/2.3.x/lib/model/QubitInformationObject.php#L506-L534
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.
Related issues
History
#1 Updated by José Raddaoui Marín about 6 years ago
PR (WIP)
#3 Updated by David Juhasz about 6 years ago
- Assignee changed from José Raddaoui Marín to Jesús García Crespo
Jesús, can you please CR?
#4 Updated by David Juhasz about 6 years ago
- Status changed from In progress to Code Review
#5 Updated by José Raddaoui Marín about 6 years ago
The PR only includes part of the improvements needed. If we want to merge it before looking at the ACL timeouts we could change the ticket title and create a new one for that matter.
There is more info in the related issue.
#6 Updated by Jesús García Crespo about 6 years ago
- Assignee changed from Jesús García Crespo to Mike Cantelon
I'm assigning this to Mike Cantelon, ok? I've never really looked into OAI before.
#8 Updated by Dan Gillean about 6 years ago
- Related to Task #9618: Optimize ACL on OAI repository module added
#9 Updated by Nick Wilkinson about 6 years ago
- Status changed from Code Review to In progress
- Assignee deleted (
Mike Cantelon)
#10 Updated by Nick Wilkinson about 6 years ago
- Assignee set to José Raddaoui Marín
#11 Updated by José Raddaoui Marín about 6 years ago
- Status changed from In progress to Code Review
- Assignee changed from José Raddaoui Marín to Mike Cantelon
#12 Updated by Mike Cantelon about 6 years ago
- Status changed from Code Review to Feedback
- Assignee changed from Mike Cantelon to José Raddaoui Marín
Nice work... looks good!
#13 Updated by Dan Gillean about 6 years ago
- Status changed from Feedback to Verified