[PATCH 0/2] vinyl: zap upsert_format

Vladimir Davydov vdavydov.dev at gmail.com
Fri Mar 30 18:47:17 MSK 2018


The sole purpose of a special format for UPSERT statements is that we
need to store UPSERT counter for them so that we can schedule UPSERT
squashing as soon as the number of UPSERTs for the same key exceeds a
certain threshold.

However, we only need to maintain the UPSERT counter for statements of
the memory level, so instead of maintaining yet another tuple format,
we can allocate the UPSERT counter on lsregion, near the tuple it is
for. This simplifies the code a great deal and eases implementation of
online ALTER.

https://github.com/tarantool/tarantool/tree/vy-zap-upsert-format

Vladimir Davydov (2):
  vinyl: allocate upsert counter on lsregion
  vinyl: zap upsert_format

 src/box/vinyl.c                 | 33 +++----------------
 src/box/vy_lsm.c                | 48 ++++++++-------------------
 src/box/vy_lsm.h                |  5 ---
 src/box/vy_mem.c                | 15 +++------
 src/box/vy_mem.h                |  6 +---
 src/box/vy_point_lookup.c       |  6 ++--
 src/box/vy_read_iterator.c      |  5 ++-
 src/box/vy_run.c                | 33 ++++++++-----------
 src/box/vy_run.h                | 11 ++-----
 src/box/vy_scheduler.c          |  8 ++---
 src/box/vy_stmt.c               | 72 ++++++++++++-----------------------------
 src/box/vy_stmt.h               | 49 +++++++++-------------------
 src/box/vy_tx.c                 |  9 ++----
 src/box/vy_upsert.c             | 11 +++----
 src/box/vy_upsert.h             |  3 +-
 src/box/vy_write_iterator.c     | 27 ++++++----------
 src/box/vy_write_iterator.h     |  8 ++---
 test/unit/vy_cache.c            | 11 +++----
 test/unit/vy_iterators_helper.c | 28 ++++++----------
 test/unit/vy_iterators_helper.h |  4 ---
 test/unit/vy_point_lookup.c     | 18 ++++-------
 test/unit/vy_write_iterator.c   |  6 ++--
 22 files changed, 125 insertions(+), 291 deletions(-)

-- 
2.11.0




More information about the Tarantool-patches mailing list