performance degradation with burst connects -------------------------------------------
Key: CORE-4650 URL: http://tracker.firebirdsql.org/browse/CORE-4650 Project: Firebird Core Issue Type: Bug Components: Engine Affects Versions: 3.0 Beta 1 Environment: Win7 64Bit WI-T3.0.0.31374 Firebird 3.0 Beta 1, Apache 2.4, Firefox 34, d3.js/XHR Reporter: Volker Rehn test scenario: web application sending a dozen or so burst requests asynchronously to web server / firebird at a time. The requests are only milliseconds apart, and each of them only asks for a small amount of blob data (< 100 B - up to a few 100 KB, but data volume doesn't play a role here). From a web server/firebird perspective, they all come with the same connect data, host/port:db-alias, user, originating client are the same. Requests/connections are all short-lived, they ask for data and disconnect again, within milliseconds. With Firebird alpha 2, a test page needs 2 seconds to fully load, with beta 1, it needs 4 seconds. Other test pages similar. BUT, and this is the esoteric part, and perhaps the key to solve this, if some desktop application (eg Flamerobin) simply holds a *constant* connection to the database while the test page is run, the test page again loads in 2 seconds or even less. All of this reproducible, no cache effects. Disconnect the application (ending the constant connection) and the web page runs slow. Connect Flamerobin and the test page is fast. What happens is that some requests of the test page, not all of them, but always the same, are getting delayed, typically and reproducible for around 1 second. I verified that the delay is not due to the database generating the data, but due to its delivery by the database server. It looks like it has to do with Firebird beta's connection handling. Connections coming through the web server are short-lived, maybe Apache does some pooling, I don't know. As if Firebird would try to cleanup or release or reallocate ressources after it handled two or three of those fast connections. Or it simply takes a break for a second ;-). But only if there is no constant connection at the same time. Hope this makes sense to you. С наступающим Новым годом -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel