Hi David, Over the last week I've been looking into other issues with the DatabasePager performance which in the end was found to be an issue with MS's iostream implementation which looks to have been addressed now. With this tackled I've now returned to cleaning up the pruning of the expired DatabaseRequests.
The changes I have gone to integrate the pruning code into the RequestQueue::takeFirst() method, doing this allows us to avoid acquiring the mutex twice in one iteration of the DatabaseThread::run() loop. It also means that if no request will served if all the requests are expired so it may occasionally help us avoid doing an extra unnecessary load. I've tested your suggested settings before and after the above changes and to me things look like they are now fixed. Could you please test svn/trunk against your own app + data. There are still some threading and object lifetime issues lurking so I'm not completely done with work on paging, but at least this particular performance issue should now be solved. Cheers, Robert. _______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
