[RFC PATCH 23/23] vinyl: eliminate read on REPLACE/DELETE

Vladimir Davydov vdavydov.dev at gmail.com
Fri Jul 13 13:53:51 MSK 2018


During our verbal discussion with Kostja, we agreed that it makes sense
to generate deferred DELETEs when the transaction is committed in case
the overwritten tuple is present in memory. This should decrease the
overall number of deferred DELETEs and thus speed up secondary index
lookups.

The patches below implement this feature. They reduce the time it takes
to run vinyl/select_consistency.test.lua on my laptop from 32 seconds
down to only 8 seconds (it takes about 7 seconds on vanilla).

I pushed them to the same branch as the rest of the patch set.

https://github.com/tarantool/tarantool/issues/2129
https://github.com/tarantool/tarantool/tree/dv/gh-2129-vy-eliminate-read-on-replace-delete

Vladimir Davydov (3):
  stailq: add stailq_insert function
  vinyl: link all indexes of the same space
  vinyl: generate deferred DELETEs on tx commit

 src/box/vinyl.c           |  1 +
 src/box/vy_lsm.c          |  7 +++-
 src/box/vy_lsm.h          |  2 +
 src/box/vy_point_lookup.c | 32 ++++++++++++++++
 src/box/vy_point_lookup.h | 18 +++++++++
 src/box/vy_tx.c           | 97 +++++++++++++++++++++++++++++++++++++++++++++++
 src/lib/salad/stailq.h    | 19 ++++++++++
 test/vinyl/quota.result   |  2 +-
 8 files changed, 176 insertions(+), 2 deletions(-)

-- 
2.11.0




More information about the Tarantool-patches mailing list