[PATCH 00/12] vinyl: prepare read iterator for index rebuild

Vladimir Davydov vdavydov.dev at gmail.com
Sun Apr 15 22:55:13 MSK 2018


To be able to use read iterator for building secondary indexes in vinyl,
we need it to guarantee that the returned tuple is always the newest
version, which is currently not true. Fix that.

https://github.com/tarantool/tarantool/commits/vy-prep-read-iterator-for-alter

Vladimir Davydov (12):
  vinyl: rename vy_stmt_history to vy_history
  vinyl: factor out vy_history_apply from vy_point_lookup_apply_history
  vinyl: add vy_history_append_stmt helper
  vinyl: zap iterator_src_type enum
  vinyl: encapsulate key history with struct
  vinyl: refine vy_history_cleanup
  vinyl: move vy_history to its own source file
  vinyl: use mempool for vy_history_node allocations
  vinyl: consolidate skip optimization checks in read iterator
  vinyl: refactor vy_read_iterator_next
  vinyl: make read iterator always return newest tuple version
  vinyl: zap vy_read_iterator::curr_stmt

 src/box/CMakeLists.txt     |   1 +
 src/box/vy_cache.c         |  51 ++---
 src/box/vy_cache.h         |  31 +--
 src/box/vy_history.c       | 115 ++++++++++
 src/box/vy_history.h       | 165 +++++++++++++
 src/box/vy_lsm.c           |   5 +
 src/box/vy_lsm.h           |   4 +-
 src/box/vy_mem.c           |  93 +++-----
 src/box/vy_mem.h           |  33 +--
 src/box/vy_point_lookup.c  | 228 +++---------------
 src/box/vy_read_iterator.c | 560 +++++++++++++++++++--------------------------
 src/box/vy_read_iterator.h |  11 +-
 src/box/vy_run.c           |  68 ++++--
 src/box/vy_run.h           |  23 +-
 src/box/vy_tx.c            |  55 +++--
 src/box/vy_tx.h            |  29 ++-
 test/unit/CMakeLists.txt   |   3 +
 test/unit/vy_cache.c       |  16 +-
 test/unit/vy_mem.c         |  24 +-
 test/vinyl/upsert.result   |   8 +-
 test/vinyl/upsert.test.lua |   6 +-
 21 files changed, 788 insertions(+), 741 deletions(-)
 create mode 100644 src/box/vy_history.c
 create mode 100644 src/box/vy_history.h

-- 
2.11.0




More information about the Tarantool-patches mailing list