memtx: allow to delay deletion of temporary tuples
Irrespective of whether there's an open read view or not, we always free memtx tuples that come from temporary spaces immediately (see #3432). This is acceptable if read views are only used for snapshotting or replication, but to reuse the read view infrastructure for user read views, we need to delay deletion of temporary tuples until all read views that may access them have been closed. The idea is to maintain independent lists of tuple garbage collection arrays for temporary and normal tuples. If a read view doesn't need to access temporary tuples, we create one garbage collection array for it, otherwise we create two garbage collection arrays. When we free a tuple, we choose a garbage collection array for it looking at its type. Closes #7412 NO_DOC=internal NO_CHANGELOG=internal
Loading
Please register or sign in to comment