Issue Details (XML | Word | Printable)

Key: MODPYTHON-8
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Graham Dumpleton
Reporter: Nicolas Lehuen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
mod_python

Improve apache.load_module with a two-level locking scheme

Created: 22/Jan/05 10:01 PM   Updated: 02/Apr/07 11:12 AM
Return to search
Component/s: importer
Affects Version/s: 3.1.3
Fix Version/s: 3.3.1

Time Tracking:
Not Specified

Issue Links:
dependent
 

Resolution Date: 12/Aug/06 08:11 AM


 Description  « Hide
We should rewrite apache.load_python with a two level locking scheme, in order to reduce thread contention when using the threading MPM.

I've already implemented something similar for a custom-made publisher system (comparable to Graham's Vampire) ; I've used a thread-safe caching system that I've donated to the Python Cookbook :

http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/302997

Maybe this should be experimented in a separate branch, and merged back once we're sure that everything works perfectly ?

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Nicolas Lehuen added a comment - 28/Apr/05 12:54 AM
Done, along with a fix for MODPYTHON-9.

Nicolas Lehuen added a comment - 26/Jun/05 06:35 AM
This is not really fixed. The publisher's implementation now uses its own system to load the published modules, but apache.import_module has not changed. A great deal of discussion has been done on this issue on the mailing list, but no decision has been made yet.

Graham Dumpleton added a comment - 10/Mar/06 01:40 PM
Linked issues which will be addressed by rewritten module importer and top level handler dispatcher.

Graham Dumpleton added a comment - 12/Aug/06 08:11 AM
Resolved by new module importer for 3.3, but for 3.3 release looks like the new importer will have to be enabled explicitly as will not be the default.