From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Vladimir Davydov Subject: Re: [RFC PATCH 23/23] vinyl: eliminate read on REPLACE/DELETE Date: Fri, 13 Jul 2018 13:53:51 +0300 Message-Id: In-Reply-To: <22418dc475632b06aee6e8db562dc4467d6a0a31.1531065648.git.vdavydov.dev@gmail.com> References: <22418dc475632b06aee6e8db562dc4467d6a0a31.1531065648.git.vdavydov.dev@gmail.com> To: kostja@tarantool.org Cc: tarantool-patches@freelists.org List-ID: 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