Sean, >>> 1. A query's operations (the reading of the data and sorting) execute >>> in a single thread/process, correct? >> >> Correct. >> >>> 2. Is Internal sorting performed by the ExecuteWriteTempSortBlock() >> step? >> >> Internal buffer is sorted as soon as filled up to its limit and then written >> into >> the temp space. More or less what you describe, AFAIU. >> Although in fact, runs (sorted buffers) may still reside in memory in other >> (larger) buffers. And the temp space manager does its own caching as well. > > Based on your answers to 1 and 2, this means that all read IO to load more > data is paused while the internal buffer is sorted and then written to disk? > > Is there a reason (in today's age of multi-core CPUs and hyper-threading) why > "helper threads" could not be created to perform the buffer sorting and temp > disk IO? > > Personally, I find it frustrating to what Firebird disk IO profile when > performing large select/sorts, on systems which have IO to burn (RAM Disk, > SSD or PCIe SSD).
I fully agree with that. IMHO, post V3, better utilization of modern I/O environments capable of handling random I/O sufficiently, should be priority #1 for Firebird. Regards, Thomas ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available. Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel