From: Vlad K. <hv...@us...> - 2014-05-13 11:36:15
|
> 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 |