EGWeb context loaders should be able to run initialization steps during the child_init phase of Apache start

Bug #1452366 reported by Galen Charlton
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Evergreen
Fix Released
Wishlist
Unassigned

Bug Description

There are circumstances where it would be handy for performance reasons to let EGWeb context loaders perform initialization steps when an Apache backend starts. In particular, EGCatLoader (for TPAC) operates a cache of R/O objects that currently gets populated during page requests, but particularly for config.coded_value_map entries, seeding that cache can get expensive. Initializing that before Apache makes a new child process ready to hand requests can improve page rendering times significantly.

Evergreen master

Revision history for this message
Galen Charlton (gmc) wrote :

A patch is available at the tip of the user/gmcharlt/lp1452366_preinit_context_loaders branch in the working/Evergreen repository:

http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/gmcharlt/lp1452366_preinit_context_loaders

This patch has a functional dependency on the patches for bug 1452352 and a textual dependency on the patches for bug 1449709.

Revision history for this message
Galen Charlton (gmc) wrote :

For anybody looking at the branch ... I've done a couple force-pushes, but am I done now.

Revision history for this message
Galen Charlton (gmc) wrote :

So, here are some numbers from one of our production 2.6 systems, prior to applying the patches for this bug, bug 1452352, and bug 1449709, the mean time for Apache to finish rendering a /eg/opac/record request was 3.24 seconds with a standard deviation of 1.09 seconds.

After applying the patch: 1.54 seconds with a standard deviation of 0.77 seconds.

Adding a pullrequest.

tags: added: pullrequest
Changed in evergreen:
importance: Undecided → Wishlist
tags: added: performance tpac
Bill Erickson (berick)
Changed in evergreen:
assignee: nobody → Bill Erickson (berick)
Revision history for this message
Bill Erickson (berick) wrote :

Agreed this is a great performance improvement. Confirmed the child_init runs and pre-loads data using the working branch, and no ill effects were seen. Will merge soon.

Changed in evergreen:
status: New → Confirmed
Revision history for this message
Bill Erickson (berick) wrote :

Merged to master. Thanks!

Changed in evergreen:
assignee: Bill Erickson (berick) → nobody
status: Confirmed → Fix Committed
Bill Erickson (berick)
Changed in evergreen:
milestone: none → 2.9-alpha
Changed in evergreen:
milestone: 2.9-alpha → 2.9-beta
Changed in evergreen:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.