[tarantool-patches] Re: [PATCH v2 4/4] Introduce replica local spaces

  • From: Vladislav Shpilevoy <v.shpilevoy@xxxxxxxxxxxxx>
  • To: tarantool-patches@xxxxxxxxxxxxx, Vladimir Davydov <vdavydov.dev@xxxxxxxxx>, kostja@xxxxxxxxxxxxx
  • Date: Mon, 9 Jul 2018 21:05:23 +0300



On 09/07/2018 18:40, Vladimir Davydov wrote:

This patch introduces a new space option, group_id, which defines how
the space is replicated. If it is 0 (default), the space is replicated
throughout the entire cluster. If it is 1, the space is replica local,
i.e. all changes made to it are invisible to other replicas in the
cluster. Currently, no other value is permitted, but in future we will
use this option for setting up arbitrary replication groups in a
cluster. The option can only be set on space creation and cannot be
altered.

Technically, to support this feature, we introduce a new header key,
IPROTO_GROUP_ID, which is set to the space group id for all rows
corresponding to a space, both in xlog and in snap. Relay won't send
snapshot rows whose group_id is 1. As for xlog rows, they are
transformed to IPROTO_NOP so as to promote vclock on replicas without
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.

@TarantoolBot document
Title: Document new space option - group_id
Group identifier defines how the space is replicated. Currently, only
two values are permitted: 0 and 1. If space.group_id is 0, changes made
to the space are replicated throughout the entire cluster. If it is 1,
then the space is replica local, i.e. changes made to it are invisible
to other replicas in the cluster.

Please, put the doc request after 'Closes'. The request must be at the
very end of the commit message.


Closes #3443
---

Other related posts: