From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: Re: [tarantool-patches] [PATCH 6/6] Introduce replica local spaces References: <22474f0135864e15bb4aa2aed19662b7911aa225.1528906027.git.vdavydov.dev@gmail.com> From: Vladislav Shpilevoy Message-ID: Date: Thu, 14 Jun 2018 00:26:18 +0300 MIME-Version: 1.0 In-Reply-To: <22474f0135864e15bb4aa2aed19662b7911aa225.1528906027.git.vdavydov.dev@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit To: tarantool-patches@freelists.org, Vladimir Davydov , kostja@tarantool.org List-ID: On 13/06/2018 19:10, Vladimir Davydov wrote: > This patch introduces a new space option, is_local, which if specified > on space creation will render all changes done locally to the space > invisible to other replicas. The option can only be set on space > creation and cannot be altered. > > Technically, to support this feature, we introduce a new header flag, > IPROTO_IS_LOCAL, which is set for all rows corresponding to replica > local spaces both in xlog and in snap. Relay won't send snapshot rows > that are marked local. As for xlog rows, it will transform them to > IPROTO_NOP so as to promote vclock on the replica without doing any > actual data modification. > > The feature is currently supported for memtx spaces only, but it should > be easy to implement it for vinyl spaces as well. > > Closes #3443 Please, write here a documentation bot request. Yes, you can do it right in a commit message at the end. Using the same syntax as for tickets. Once the patch is pushed into the trunk (now it is 2.0), the bot will create the documentation issue automatically. After the patch was pushed on any branch, you could check that the bot got your request here: http://try.tarantool.org:11116 in TarantoolBot Journal. > --- > src/box/alter.cc | 4 + > src/box/iproto_constants.c | 4 +- > src/box/iproto_constants.h | 1 + > src/box/lua/schema.lua | 9 +- > src/box/lua/space.cc | 5 ++ > src/box/lua/xlog.c | 5 ++ > src/box/memtx_engine.c | 8 +- > src/box/relay.cc | 17 +++- > src/box/space.h | 12 ++- > src/box/space_def.c | 2 + > src/box/space_def.h | 5 ++ > src/box/txn.c | 3 + > src/box/vinyl.c | 5 ++ > src/box/xrow.c | 9 ++ > src/box/xrow.h | 1 + > test/engine/iterator.result | 2 +- > test/replication/local_spaces.result | 159 +++++++++++++++++++++++++++++++++ > test/replication/local_spaces.test.lua | 54 +++++++++++ > test/replication/suite.cfg | 1 + > test/vinyl/ddl.result | 5 ++ > test/vinyl/ddl.test.lua | 3 + > 21 files changed, 304 insertions(+), 10 deletions(-) > create mode 100644 test/replication/local_spaces.result > create mode 100644 test/replication/local_spaces.test.lua >