From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp43.i.mail.ru (smtp43.i.mail.ru [94.100.177.103]) (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 79A844696C3 for ; Tue, 14 Apr 2020 00:55:47 +0300 (MSK) From: Nikita Pettik Date: Tue, 14 Apr 2020 00:55:43 +0300 Message-Id: Subject: [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: tarantool-patches@dev.tarantool.org Cc: v.shpilevoy@tarantool.org 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 -- 2.17.1