Patches item #1806696, was opened at 2007-10-03 05:25 Message generated for change (Comment added) made by cito You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=304866&aid=1806696&group_id=4866
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: WebKit Group: None >Status: Open Resolution: Accepted Priority: 5 Private: No Submitted By: Steve Schwarz (saschwarz) Assigned to: Christoph Zwerschke (cito) Summary: Transaction Monitoring and Control Initial Comment: Hi, I've been running a local patch for a couple weeks now with following features: 1 - Added two methods to ThreadedAppServer: startRequest() and endRequest() methods. These methods can be used to implement page statistics and/or click tracking by session. Default implementation supports feature 2 below. 2 - Allow real time monitoring of the requests being processed by each thread. A new ThreadControl page has been added to the Admin context. Setting 'TrackThreads' to True in AppServer.config enables this feature. If the supplied thread2.py module is loaded requests can be cancelled via this page. 3 - Support automatically cancelling requests taking more than a configurable amount of time. Setting 'CancelLongRequests' to the number of seconds after which a request should be cancelled in the AppServer.config file enables this feature. This feature also requires 'TrackThreads' to be enabled. The patch is relatively small, if there is interest in looking at these changes and moving them into the mainline I'd be happy to forward them to anyone interested. Of course, comments and suggestions are very welcome. The performance penalty for feature 1 is the cost of some accessors into the current transaction, a couple time() calls and two function calls. I would guess these changes should have a negligible impact on performance. Features 2 and 3 use a new class which is basically a locked dictionary. So the cost is two additional mutex lock/unlocks for each transaction. If WebKit didn't support adding/removing threads dynamically that mutex could be removed and the additional overhead is some dictionary accesses. I'd be happy to get feedback on these enhancements. Thanks, Steve ---------------------------------------------------------------------- >Comment By: Christoph Zwerschke (cito) Date: 2007-11-23 21:33 Message: Logged In: YES user_id=193957 Originator: NO I just noticed that I have only implemented features 1 and 2, and completely forgot about your CancelLongRequests option for canceling long-runners automatically. Reopened this ticket as a reminder to implement that, too. ---------------------------------------------------------------------- Comment By: Christoph Zwerschke (cito) Date: 2007-11-23 20:47 Message: Logged In: YES user_id=193957 Originator: NO Thanks a lot, Steve. This has now been implemented in r7097 and will go into Webware 0.9.5. I only changed some implementation details. For instance, I am not using any locks. Since we have only one writer, and since setattr operations are atomic in Python, you can actually do without them. I have also added an improved version of your ThreadControl servlet. Let me know if you think this implementation is ok or if you find any bugs or problems. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=304866&aid=1806696&group_id=4866 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Webware-devel mailing list Webware-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/webware-devel