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

Bug #1452366 reported by Galen Charlton on 2015-05-06
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Evergreen
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

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.

Galen Charlton (gmc) wrote :

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

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) on 2015-06-10
Changed in evergreen:
assignee: nobody → Bill Erickson (berick)
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
Bill Erickson (berick) wrote :

Merged to master. Thanks!

Changed in evergreen:
assignee: Bill Erickson (berick) → nobody
status: Confirmed → Fix Committed
Bill Erickson (berick) on 2015-06-10
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  Edit
Everyone can see this information.

Other bug subscribers