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

Improve overall performance #38

Open
10 of 11 tasks
dvglc opened this issue Apr 30, 2019 · 6 comments
Open
10 of 11 tasks

Improve overall performance #38

dvglc opened this issue Apr 30, 2019 · 6 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request question Further information is requested
Milestone

Comments

@dvglc
Copy link
Contributor

dvglc commented Apr 30, 2019

General issue with the current app/database, probably needs to be solved through multiple smaller steps (which can be listed here).

  • for works, load only teiHeader and some atomic data into the model - no need to shove around large document trees when we need only the metadata most of the time; tei:text can be side-loaded if necessary
  • revise dynamic content injection/creation in html templates (through config.xqm, app.xql, etc.)
  • check importing between modules: are there obsolete imports?
  • revise index config (once more)
  • increase eXist/Jetty/JVM RAM settings?
  • reduce calls to i18n functions
  • reduce calls to transform:transform
  • reduce calls to util:eval
  • check if calls to util:expand can be reduced
  • minify resources (see below)
  • ... ?
@dvglc dvglc added bug Something isn't working enhancement New feature or request labels Apr 30, 2019
@dvglc dvglc added this to the v1.3 milestone Apr 30, 2019
@dvglc dvglc self-assigned this Apr 30, 2019
@dvglc dvglc modified the milestones: v1.3, v1.4 May 13, 2019
@dvglc dvglc modified the milestones: v1.4, v2.0 Jun 7, 2019
@awagner-mainz
Copy link
Member

awagner-mainz commented Sep 18, 2019

Although I am aware of bad experiences when upgrading exist-db, I would like to suggest we check out exist 5 on the test machine. The reason being that besides the usual "performance improvements" that we may or may not profit from, exist 5 should come with a jetty version recent enough to support HTTP/2: https://webtide.com/introduction-to-http2-in-jetty/

Depending on how smooth the upgrade is, this may be low-hanging fruit.

@awagner-mainz
Copy link
Member

awagner-mainz commented Sep 27, 2019

Update the following resources:

  • jstree.js (downloaded locally, from 3.3.5 to 3.3.9)
  • bootstrap (accessed via CDN, update from 3.3.5 to 4.4.1)
  • jquery (accessed via CDN, update from 1.11.3 to 1.12.4)
  • jquery-ui (accessed via CDN, update from 1.10.4 to 1.12.1)

Minify the following resources:

  • resources/js/jstree.js
  • resources/js/jquery.tooltipster.js
  • resources/css/mirador-combined.css
  • resources/css/style_work.css
  • resources/css/jquery-ui-1.10.4.custom.css

@dvglc
Copy link
Contributor Author

dvglc commented Oct 21, 2019

It might also help if we enhanced access control, especially of functions ('%private'), in the XQuery code, so as to further reduce interdependencies between functions and modules.

@awagner-mainz
Copy link
Member

These cache settings seem to be good (for eXist-db 4, that is!):

  • 6GB total memory (Java -Xmx)
  • 1GB Cache Size
  • 256MB CollectionCache
  • (broker) pool max=100

Smaller Cache resulted in more Cache Misses than Hits, larger resulted in memory mgmt overhead.

@dvglc
Copy link
Contributor Author

dvglc commented Mar 3, 2020

Calls to util:eval do not occur in the core of the app, only in services (lod, codesharing). Hence, we would have to modify "external" code to circumvent such calls. Also, since util:eval only occurs in services, it seems not to play a really important role in the functioning of the app. I would thus refrain from replacing util:eval.

Also, I wouldn't know which other function could replace util:eval, and the same applies to util:expand (which actually plays an important role, e.g. in the tei export, data transformations, etc.).

Should we leave those functions as they are?

@dvglc dvglc added the question Further information is requested label Mar 3, 2020
@awagner-mainz
Copy link
Member

Yes, I think we should leave them as they are now. Possibly the performance hits that we meet from time to time are just one or two blocking queries that are problematic in certain call scenarios, so the main thing would be a good stack trace or other log analysis of such an event.

@dvglc dvglc modified the milestones: v2.0, v2.0.1 Mar 9, 2020
@dvglc dvglc removed their assignment Mar 9, 2020
@awagner-mainz awagner-mainz modified the milestones: v2.0.1, v2.1 Aug 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants