From: Serge Petrenko <sergepetrenko@tarantool.org> To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>, tarantool-patches@dev.tarantool.org, gorcunov@gmail.com Subject: Re: [Tarantool-patches] [PATCH 09/12] raft: introduce raft_msg, drop xrow dependency Date: Fri, 20 Nov 2020 11:03:27 +0300 [thread overview] Message-ID: <21dff8e1-f4ea-dfdf-df28-8445d3e104f3@tarantool.org> (raw) In-Reply-To: <52e1d00a-1f4c-b750-d72f-2c9256085436@tarantool.org> 20.11.2020 02:43, Vladislav Shpilevoy пишет: > Thanks for the review! > >>> diff --git a/src/box/raft.c b/src/box/raft.c >>> index 845525660..f3652bbcb 100644 >>> --- a/src/box/raft.c >>> +++ b/src/box/raft.c >>> @@ -49,6 +49,28 @@ struct raft box_raft_global = { >>> */ >>> static struct trigger box_raft_on_update; >>> +static void >>> +box_raft_msg_to_request(const struct raft_msg *msg, struct raft_request *req) >>> +{ >>> + *req = (struct raft_request) { >>> + .term = msg->term, >>> + .vote = msg->vote, >>> + .state = msg->state, >>> + .vclock = msg->vclock, >>> + }; >>> +} >>> + >>> +static void >>> +box_raft_request_to_msg(const struct raft_request *req, struct raft_msg *msg) >>> +{ >>> + *msg = (struct raft_msg) { >>> + .term = req->term, >>> + .vote = req->vote, >>> + .state = req->state, >>> + .vclock = req->vclock, >>> + }; >>> +} >>> + >>> static int >>> box_raft_on_update_f(struct trigger *trigger, void *event) >>> { >> Have you considered making `struct raft_msg` a member of `struct raft_request`? >> This way you'll avoid copying. >> Yes, xrow will start depending on raftlib, but is this too bad? > This is what I was trying to avoid. Currently xrow does not depend on anything. > It is a pure protocol library. I am not saying it is good, but I don't want to > create a precedent here, allowing to link xrow with everything else in future. > > If it was up to me, I would split xrow, so as each library and subsystem decides > how to encode its shit. Haha, ok. > >> Never mind, it'll only work on raft_request -> raft_msg transition, >> but not vice versa. So, just an idea. >> >>> diff --git a/src/box/raft.h b/src/box/raft.h >>> index 09297273f..4dffce380 100644 >>> --- a/src/box/raft.h >>> +++ b/src/box/raft.h >>> @@ -35,6 +35,8 @@ >>> extern "C" { >>> #endif >>> +struct raft_request; >>> + >>> /** Raft state of this instance. */ >>> static inline struct raft * >>> box_raft(void) >>> @@ -56,6 +58,28 @@ box_raft(void) >>> void >>> box_raft_reconsider_election_quorum(void); >>> +/** >>> + * Recovery a single Raft request. Raft state machine is not turned on yet, this >>> + * works only during instance recovery from the journal. >>> + */ >> >> Typo: Recovery -> Recover > Indeed, fixed. > > ==================== > /** > - * Recovery a single Raft request. Raft state machine is not turned on yet, this > + * Recover a single Raft request. Raft state machine is not turned on yet, this > * works only during instance recovery from the journal. > ==================== Thanks for the fix! -- Serge Petrenko
prev parent reply other threads:[~2020-11-20 8:03 UTC|newest] Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-11-17 0:02 [Tarantool-patches] [PATCH 00/12] Raft module, part 2 - relocation to src/lib/raft Vladislav Shpilevoy 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 01/12] raft: move sources to raftlib.h/.c Vladislav Shpilevoy 2020-11-17 8:14 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 10/12] raft: move box_update_ro_summary to update trigger Vladislav Shpilevoy 2020-11-17 12:42 ` Serge Petrenko 2020-11-17 15:17 ` Serge Petrenko 2020-11-18 23:21 ` Vladislav Shpilevoy 2020-11-19 10:08 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 11/12] raft: introduce RaftError Vladislav Shpilevoy 2020-11-17 15:13 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 12/12] raft: move algorithm code to src/lib/raft Vladislav Shpilevoy 2020-11-17 15:13 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 02/12] raft: move box_raft_* to src/box/raft.h and .c Vladislav Shpilevoy 2020-11-17 8:14 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 03/12] raft: stop using replication_disconnect_timeout() Vladislav Shpilevoy 2020-11-17 8:15 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 04/12] raft: stop using replication_synchro_quorum Vladislav Shpilevoy 2020-11-17 8:17 ` Serge Petrenko 2020-11-19 23:42 ` Vladislav Shpilevoy 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 05/12] raft: stop using instance_id Vladislav Shpilevoy 2020-11-17 8:59 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 06/12] raft: make raft_request.vclock constant Vladislav Shpilevoy 2020-11-17 9:17 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 07/12] raft: stop using replicaset.vclock Vladislav Shpilevoy 2020-11-17 9:23 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 08/12] raft: introduce vtab for disk and network Vladislav Shpilevoy 2020-11-17 9:35 ` Serge Petrenko 2020-11-19 23:43 ` Vladislav Shpilevoy 2020-11-17 10:00 ` Serge Petrenko 2020-11-19 23:43 ` Vladislav Shpilevoy 2020-11-20 7:56 ` Serge Petrenko 2020-11-20 19:40 ` Vladislav Shpilevoy 2020-11-23 8:09 ` Serge Petrenko 2020-11-17 0:02 ` [Tarantool-patches] [PATCH 09/12] raft: introduce raft_msg, drop xrow dependency Vladislav Shpilevoy 2020-11-17 10:22 ` Serge Petrenko 2020-11-19 23:43 ` Vladislav Shpilevoy 2020-11-20 8:03 ` Serge Petrenko [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=21dff8e1-f4ea-dfdf-df28-8445d3e104f3@tarantool.org \ --to=sergepetrenko@tarantool.org \ --cc=gorcunov@gmail.com \ --cc=tarantool-patches@dev.tarantool.org \ --cc=v.shpilevoy@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH 09/12] raft: introduce raft_msg, drop xrow dependency' \ /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