Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ODC performance improvement plan #1535

Open
quadrophobiac opened this issue Jul 12, 2017 · 2 comments
Open

ODC performance improvement plan #1535

quadrophobiac opened this issue Jul 12, 2017 · 2 comments

Comments

@quadrophobiac
Copy link
Collaborator

From @Floppy on June 4, 2015 13:50

Surveyor is becoming a liability - let's make it all better! YAY!

Copied from original issue: theodi/shared#636

@quadrophobiac
Copy link
Collaborator Author

From @pkqk on June 5, 2015 10:23

The Surveyor gem is both not currently being maintained and the data model does not support the size of the questionnaires we are using it for very well. (eg. #1142)

The gem is written using very simple ActiveRecord relations which regularly create severe n+1 query issues.

Since the app is so heavily dependent on how Surveyor operates I don't think rewriting it directly is a good solution.

We could however make reasonable improvements in several steps:

  • vendor Surveyor in the the codebase so it's easier to refactor
    • we can then move our monkey patches into the actual classes
    • move the MethodModules into the actual classes as it wouldn't need to be extensible anymore
  • start improving the query creation by preloads etc.
  • stop storing questionnaire logic in the database and make the Survey object have a decision tree that does that
  • store dependencies between questions in the Survey object as well.

This will get us part way to a more performant system and leave the option for more speed improvements.

@quadrophobiac
Copy link
Collaborator Author

From @dicknorris on August 21, 2015 16:37

Book to ODM > WP3 > Task 3.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant