From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org> To: tarantool-patches@freelists.org, Konstantin Belyavskiy <k.belyavskiy@tarantool.org>, georgy@tarantool.org Subject: [tarantool-patches] Re: [PATCH] replication: do not fetch records twice in a full mesh Date: Fri, 27 Apr 2018 13:41:57 +0300 [thread overview] Message-ID: <4d5ee862-786b-e6f9-dbc0-63e547b4df68@tarantool.org> (raw) In-Reply-To: <20180427102359.96686-1-k.belyavskiy@tarantool.org> Hello. See my 6 comments below. On 27/04/2018 13:23, Konstantin Belyavskiy wrote: > --- > Ticket: https://github.com/tarantool/tarantool/issues/3294 > Branch: https://github.com/tarantool/tarantool/compare/gh-3294-do-not-fetch-records-twice > Link: https://github.com/tarantool/tarantool/blob/gh-3294-do-not-fetch-records-twice/doc/rfc/3294-implement-selective-subscribe-to-avoid-fetch-record-twice.md > > ...ective-subscribe-to-avoid-fetch-record-twice.md | 44 ++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > create mode 100644 doc/rfc/3294-implement-selective-subscribe-to-avoid-fetch-record-twice.md > > diff --git a/doc/rfc/3294-implement-selective-subscribe-to-avoid-fetch-record-twice.md b/doc/rfc/3294-implement-selective-subscribe-to-avoid-fetch-record-twice.md > new file mode 100644 > index 000000000..aa97fec77 > --- /dev/null > +++ b/doc/rfc/3294-implement-selective-subscribe-to-avoid-fetch-record-twice.md > @@ -0,0 +1,44 @@ > +# Replication: do not fetch records twice in a full mesh > + > +* **Status**: In progress > +* **Start date**: 25-04-2018 > +* **Authors**: Konstantin Belyavskiy @kbelyavs k.belyavskiy@tarantool.org, Georgy Kirichenko @georgy georgy@tarantool.org, Konstantin Osipov @kostja kostja@tarantool.org > +* **Issues**: \[#3294\](https://github.com/tarantool/tarantool/issues/3294) 1. Please hide the URL using correct markup. > + > +## Summary > + > +replication: do not fetch records twice in a full mesh 2. Please, write a more informative summary. It is not a commit header, and is not limited with one line and 50 symbols. For example, see https://github.com/tarantool/tarantool/blob/gh-3328-new-iproto/doc/rfc/3328-wire_protocol.md. > + > +## Background and motivation > + > +Extend IPROTO_SUBSCRIBE command with a list of server ids for which SUBSCRIBE should fetch changes. In a full mesh configuration, only download records originating from the immediate peer. Do not download the records from other peers twice. 3. Same - it is not a commit message. You must not write using imperative mood. Users, which will read this, do not know that it IPROTO_SUBSCRIBE command. > + > +For example, imagine a full mesh of 3 replicas. Currently each Tarantool instance will download from all peers all records in their WAL excepts records with instance id equal to the self instance id. Instead, it could send a subscribe request to its peers with server ids which are not present in other subscribe requests. > + > +## Implementation > + > +After issuing IPROTO_REQUEST_VOTE to all peers we know a map of server ids, their peers and their vclocks. Sort 4. RFC either must not contain implementation, or it must be at the end of the document. the map by server id. Iterate over each server in the list of peers, and assign its id to this server's SUBSCRIBE request. Assign all the remaining ids in \_cluster table to the last peer (alternatively, if there are many ids in 5. A new user does not know what it _cluster table, and it is a space, not a table. > +## Rationale and alternatives > + > +Here existing alternatives are described, and why they appeared to be worse than an implemented thing. 6. Where are alternatives? If no one, then delete this template, please.
prev parent reply other threads:[~2018-04-27 10:42 UTC|newest] Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-27 10:23 [tarantool-patches] " Konstantin Belyavskiy 2018-04-27 10:41 ` Vladislav Shpilevoy [this message]
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=4d5ee862-786b-e6f9-dbc0-63e547b4df68@tarantool.org \ --to=v.shpilevoy@tarantool.org \ --cc=georgy@tarantool.org \ --cc=k.belyavskiy@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='[tarantool-patches] Re: [PATCH] replication: do not fetch records twice in a full mesh' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox