<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div><div class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div><div class=""><br class=""></div></div></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">20 дек. 2019 г., в 15:07, Serge Petrenko <<a href="mailto:sergepetrenko@tarantool.org" class="">sergepetrenko@tarantool.org</a>> написал(а):</div><br class="Apple-interchange-newline"><div class=""><div class=""><br class=""><br class=""><br class=""><blockquote type="cite" class="">18 дек. 2019 г., в 10:49, Georgy Kirichenko <<a href="mailto:georgy@tarantool.org" class="">georgy@tarantool.org</a>> написал(а):<br class=""><br class="">Hi!<br class="">Thank you for the patch set, good approach and overall it looks good to be <br class="">merged. And there alos some points I would like to point.<br class="">Please consider what should happen if any other instance tries to connect to <br class="">an anonymous replica. I think we could enable such replication if a connecting <br class="">replica is anonymous to, however, this should be an object of a different issue <br class="">so we could disable such behavior right now. At least we should handle <br class="">replica_id = 0 while replication.<br class=""></blockquote></div></div></blockquote><div><div class=""><br class=""></div><div class="">The case with replcia_id = 0 is handled in relay_send_row()</div><div class="">Anonymous replica just doesn’t send the rows which have id = 0.</div><div class=""><br class=""></div><div class="">For now I just forbid replication from an anonymous instance.</div><div class="">Other anonymous instances may fetch this instances snapshot, </div><div class="">and then they’ll get an error on subscribe:</div><div class="">«Replication does not support replicating from an anonymous instance»</div><div class=""><br class=""></div>I’ve also opened a ticket to allow anon replication from an anon instance</div><div><a href="https://github.com/tarantool/tarantool/issues/4696" class="">https://github.com/tarantool/tarantool/issues/4696</a><br class=""><div class=""><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div><div>--</div><div>Serge Petrenko</div><div>sergepetrenko@tarantool.org</div></div></div></div></div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><blockquote type="cite" class="">The last point I would like to mention is that a test with replication from an <br class="">anonymous replica could be included.<br class=""><br class=""><br class=""></blockquote>Hi! Thank you for review. I’ve added the test you requested and sent it as a follow-up<br class="">to 5th patch.<br class=""><br class="">Vlad, could you do the second review?<br class="">--<br class="">Serge Petrenko<br class=""><a href="mailto:sergepetrenko@tarantool.org" class="">sergepetrenko@tarantool.org</a><br class=""><br class=""><br class=""><blockquote type="cite" class="">On Sunday, 15 December 2019 23:56:14 MSK sergepetrenko wrote:<br class=""><blockquote type="cite" class="">Serge Petrenko (3):<br class=""> box: update comment describing join protocol<br class=""> replication: do not decode replicaset uuid when processing a subscribe<br class=""> applier: split join processing into two stages<br class=""><br class="">sergepetrenko (2):<br class=""> vclock: ignore 0th component in comparisons.<br class=""> replication: introduce anonymous replica.<br class=""><br class="">src/box/applier.cc | 119 ++++++++++++--<br class="">src/box/applier.h | 4 +<br class="">src/box/box.cc | 278 ++++++++++++++++++++++++++++++--<br class="">src/box/box.h | 11 +-<br class="">src/box/iproto.cc | 16 +-<br class="">src/box/iproto_constants.h | 6 +<br class="">src/box/lua/cfg.cc | 14 +-<br class="">src/box/lua/info.c | 4 +-<br class="">src/box/lua/load_cfg.lua | 4 +<br class="">src/box/recovery.cc | 7 +-<br class="">src/box/relay.cc | 32 +++-<br class="">src/box/replication.cc | 41 ++++-<br class="">src/box/replication.h | 24 +++<br class="">src/box/vclock.h | 7 +<br class="">src/box/wal.c | 4 +<br class="">src/box/xrow.c | 47 +++++-<br class="">src/box/xrow.h | 68 ++++++--<br class="">test/app-tap/init_script.result | 49 +++---<br class="">test/box/admin.result | 2 +<br class="">test/box/cfg.result | 4 +<br class="">test/replication/anon.lua | 13 ++<br class="">test/replication/anon.result | 259 +++++++++++++++++++++++++++++<br class="">test/replication/anon.test.lua | 89 ++++++++++<br class="">test/replication/suite.cfg | 1 +<br class="">test/unit/vclock.cc | 8 +-<br class="">25 files changed, 1022 insertions(+), 89 deletions(-)<br class="">create mode 100644 test/replication/anon.lua<br class="">create mode 100644 test/replication/anon.result<br class="">create mode 100644 test/replication/anon.test.lua<br class=""></blockquote><br class=""></blockquote><br class=""></div></div></blockquote></div><br class=""></body></html>