vinyl: allow to skip prepared statements in mem iterator
To implement read-confirmed and best-effort isolation levels, we need to skip unconfirmed (aka prepared) statements in the mem iterator. To achieve that, we add a new flag is_prepared_ok. Unless the flag is set, the iterator will skip prepared statements even if they are visible from the iterator read view. Upon skipping a statement, the iterator updates min_skipped_plsn if the LSN of the skipped statement is less. We'll use this LSN to update the transaction read view accordingly. Needed for #5522 NO_DOC=internal NO_CHANGELOG=internal
Showing
- src/box/vy_mem.c 24 additions, 5 deletionssrc/box/vy_mem.c
- src/box/vy_mem.h 15 additions, 1 deletionsrc/box/vy_mem.h
- src/box/vy_point_lookup.c 1 addition, 1 deletionsrc/box/vy_point_lookup.c
- src/box/vy_read_iterator.c 3 additions, 2 deletionssrc/box/vy_read_iterator.c
- test/unit/vy_mem.c 272 additions, 2 deletionstest/unit/vy_mem.c
Loading
Please register or sign in to comment