Task #9608

Improve response speed in OAI plugin requests

Added by José Raddaoui Marín about 6 years ago. Updated about 6 years ago.

Status:VerifiedStart date:03/22/2016
Priority:MediumDue 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:

https://github.com/artefactual/atom/blob/qa/2.3.x/plugins/arOaiPlugin/modules/arOaiPlugin/actions/indexAction.class.php#L109-L113

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

Related to Access to Memory (AtoM) - Task #9618: Optimize ACL on OAI repository module Verified 03/24/2016

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

Also available in: Atom PDF