> If a record has uncommitted head version created by active transaction and > some garbage > in backversions "tail", can anyone (background GC thread, sweep or parallel > transaction) > wipe this garbage from the tail while the transaction is still active?
Yes > I can't understand why list_staying() is so picky: it scans for every next > version from > the beginning which raise its complexity to O(N^2). list_staying used to undo dead record version. It is not a most often operation. And, yes, it is terrible inefficient. It restarts from the beginning of the versions chain when need next record version because : a) it used handoff's to make sure backpointers is valid b) data page with target version is released Regards, Vlad ------------------------------------------------------------------------------ "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