[tarantool-patches] [PATCH 6/6] Introduce replica local spaces

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Thu Jun 14 00:26:18 MSK 2018



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
> 



More information about the Tarantool-patches mailing list