> 20 дек. 2019 г., в 15:07, Serge Petrenko написал(а): > > > > >> 18 дек. 2019 г., в 10:49, Georgy Kirichenko написал(а): >> >> 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@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@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 >> >