From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp61.i.mail.ru (smtp61.i.mail.ru [217.69.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id CF05E469710 for ; Thu, 21 May 2020 01:13:31 +0300 (MSK) References: From: Vladislav Shpilevoy Message-ID: <0bdc1b5e-82b4-2e24-ad06-26587b007742@tarantool.org> Date: Thu, 21 May 2020 00:13:29 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [PATCH 0/2] Validate result of upserts squash & skip invalid upserts which can't be applied List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nikita Pettik , tarantool-patches@dev.tarantool.org Thanks for the patchset! I grepped for other vy_apply_upsert() usage cases and found these: - vy_build_recover_stmt() - should we patch it too? - vy_tx_write() - here the upsert is skipped in case of any error, but what if it was not a ClientError? On 13/04/2020 23:55, Nikita Pettik wrote: > Branch: https://github.com/tarantool/tarantool/tree/np/gh-1622-skip-invalid-upserts > Issue: https://github.com/tarantool/tarantool/issues/1622 > > In fact, the first patch in series does not make much sense without > second since otherwise dump or compaction processes (and any other > operations that read data as well) will fail whenever they are started. > But still I've divided fix into two patches for the sake of review > simplicity. > > Nikita Pettik (2): > vinyl: validate resulting tuple after upsert is applied > vinyl: skip invalid upserts during squash > > src/box/vy_history.c | 20 ++- > src/box/vy_lsm.c | 13 +- > src/box/vy_tx.c | 29 ++-- > src/box/vy_upsert.c | 4 + > src/box/vy_write_iterator.c | 34 +++-- > .../vinyl/gh-1622-skip-invalid-upserts.result | 135 ++++++++++++++++++ > .../gh-1622-skip-invalid-upserts.test.lua | 50 +++++++ > 7 files changed, 258 insertions(+), 27 deletions(-) > create mode 100644 test/vinyl/gh-1622-skip-invalid-upserts.result > create mode 100644 test/vinyl/gh-1622-skip-invalid-upserts.test.lua >