[Tarantool-patches] [PATCH 0/5] introduce anonymous replicas

Serge Petrenko sergepetrenko at tarantool.org
Fri Dec 20 15:17:31 MSK 2019






> 20 дек. 2019 г., в 15:07, Serge Petrenko <sergepetrenko at tarantool.org> написал(а):
> 
> 
> 
> 
>> 18 дек. 2019 г., в 10:49, Georgy Kirichenko <georgy at tarantool.org> написал(а):
>> 
>> Hi!
>> Thank you for the patch set, good approach and overall it looks good to be 
>> merged. And there alos some points I would like to point.
>> Please consider what should happen if any other instance tries to connect to 
>> an anonymous replica. I think we could enable such replication if a connecting 
>> replica is anonymous to, however, this should be an object of a different issue 
>> so we could disable such behavior right now. At least we should handle 
>> replica_id = 0 while replication.

The case with replcia_id = 0 is handled in relay_send_row()
Anonymous replica just doesn’t send the rows which have id = 0.

For now I just forbid replication from an anonymous instance.
Other anonymous instances may fetch this instances snapshot, 
and then they’ll get an error on subscribe:
«Replication does not support replicating from an anonymous instance»

I’ve also opened a ticket to allow anon replication from an anon instance
https://github.com/tarantool/tarantool/issues/4696
--
Serge Petrenko
sergepetrenko at tarantool.org

>> The last point I would like to mention is that a test with replication from an 
>> anonymous replica could be included.
>> 
>> 
> Hi! Thank you for review. I’ve added the test you requested and sent it as a follow-up
> to 5th patch.
> 
> Vlad, could you do the second review?
> --
> Serge Petrenko
> sergepetrenko at tarantool.org
> 
> 
>> On Sunday, 15 December 2019 23:56:14 MSK sergepetrenko wrote:
>>> Serge Petrenko (3):
>>> box: update comment describing join protocol
>>> replication: do not decode replicaset uuid when processing a subscribe
>>> applier: split join processing into two stages
>>> 
>>> sergepetrenko (2):
>>> vclock: ignore 0th component in comparisons.
>>> replication: introduce anonymous replica.
>>> 
>>> src/box/applier.cc              | 119 ++++++++++++--
>>> src/box/applier.h               |   4 +
>>> src/box/box.cc                  | 278 ++++++++++++++++++++++++++++++--
>>> src/box/box.h                   |  11 +-
>>> src/box/iproto.cc               |  16 +-
>>> src/box/iproto_constants.h      |   6 +
>>> src/box/lua/cfg.cc              |  14 +-
>>> src/box/lua/info.c              |   4 +-
>>> src/box/lua/load_cfg.lua        |   4 +
>>> src/box/recovery.cc             |   7 +-
>>> src/box/relay.cc                |  32 +++-
>>> src/box/replication.cc          |  41 ++++-
>>> src/box/replication.h           |  24 +++
>>> src/box/vclock.h                |   7 +
>>> src/box/wal.c                   |   4 +
>>> src/box/xrow.c                  |  47 +++++-
>>> src/box/xrow.h                  |  68 ++++++--
>>> test/app-tap/init_script.result |  49 +++---
>>> test/box/admin.result           |   2 +
>>> test/box/cfg.result             |   4 +
>>> test/replication/anon.lua       |  13 ++
>>> test/replication/anon.result    | 259 +++++++++++++++++++++++++++++
>>> test/replication/anon.test.lua  |  89 ++++++++++
>>> test/replication/suite.cfg      |   1 +
>>> test/unit/vclock.cc             |   8 +-
>>> 25 files changed, 1022 insertions(+), 89 deletions(-)
>>> create mode 100644 test/replication/anon.lua
>>> create mode 100644 test/replication/anon.result
>>> create mode 100644 test/replication/anon.test.lua
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20191220/a7c6ed4f/attachment.html>


More information about the Tarantool-patches mailing list