From: Vladimir Davydov <vdavydov.dev@gmail.com> To: Konstantin Osipov <kostja@tarantool.org> Cc: tarantool-patches@freelists.org Subject: Re: [tarantool-patches] Re: [PATCH v2 7/7] relay: join new replicas off read view Date: Thu, 22 Aug 2019 11:05:54 +0300 [thread overview] Message-ID: <20190822080554.GM13834@esperanza> (raw) In-Reply-To: <20190821220807.GA8614@atlas> On Thu, Aug 22, 2019 at 01:08:07AM +0300, Konstantin Osipov wrote: > * Vladimir Davydov <vdavydov.dev@gmail.com> [19/08/20 17:08]: > > On Tue, Aug 20, 2019 at 04:50:07PM +0300, Konstantin Osipov wrote: > > > * Vladimir Davydov <vdavydov.dev@gmail.com> [19/08/20 15:10]: > > > > Well, yeah, kinda. OTOH they do relay data to a replica that's why I > > > > named them relay_something :-/ Also, those functions live in relay.cc, > > > > which is consistent with the relay_ prefix. > > > > > > engine_send? I'll think about it. > > > > But the code is engine-agnostic now - it just opens read-view iterators > > and sends whatever they return to a replica :-/ > > OK. Let's move it out of relay then. It's OK to put it in a > special file or move to engine.cc. It's OK that it's > engine-agnostic- engine.cc can have code common to all engines. Okay, will do. > > relay prefix is also confusing since in replication "relaying" is > used to refer to re-sending some existing files or logs. > > The only issue about this patch is that since, unlike a snapshot > iterator, the code runs in tx thread, it may require some > throttling. If the network is fast enough it the send loop may run > at very high speeds. It could even hog 100% of CPU time and nearly > never yield CPU to other transactions. Good point. > > I see two options here: move it to a separate thread (memtx > iterators allow it, so it would be preferred), or throttle. Unfortunately, I don't think we can move this code out of the tx thread, because vinyl iterator must be run from tx (well, we could iterate over run files in a thread, but not over the memory level; and we don't want to suspend dumps/compaction until we're done joining a replica). So I guess I will simply call fiber_sleep() periodically, similarly to how we handle index build.
next prev parent reply other threads:[~2019-08-22 8:05 UTC|newest] Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-19 16:53 [PATCH v2 0/7] Join replicas off the current " Vladimir Davydov 2019-08-19 16:53 ` [PATCH v2 1/7] vinyl: don't pin index for iterator lifetime Vladimir Davydov 2019-08-19 20:35 ` [tarantool-patches] " Konstantin Osipov 2019-08-19 16:53 ` [PATCH v2 2/7] vinyl: don't exempt dropped indexes from dump and compaction Vladimir Davydov 2019-08-19 20:47 ` [tarantool-patches] " Konstantin Osipov 2019-08-20 8:12 ` Vladimir Davydov 2019-08-20 9:02 ` Vladimir Davydov 2019-08-20 11:52 ` Konstantin Osipov 2019-08-20 14:16 ` Vladimir Davydov 2019-08-19 16:53 ` [PATCH v2 3/7] vinyl: get rid of vy_env::join_lsn Vladimir Davydov 2019-08-19 20:49 ` [tarantool-patches] " Konstantin Osipov 2019-08-19 16:53 ` [PATCH v2 4/7] memtx: use ref counting to pin indexes for snapshot Vladimir Davydov 2019-08-19 20:50 ` [tarantool-patches] " Konstantin Osipov 2019-08-19 16:53 ` [PATCH v2 5/7] memtx: enter small delayed free mode from snapshot iterator Vladimir Davydov 2019-08-19 20:51 ` [tarantool-patches] " Konstantin Osipov 2019-08-19 16:53 ` [PATCH v2 6/7] space: get rid of apply_initial_join_row method Vladimir Davydov 2019-08-19 20:54 ` [tarantool-patches] " Konstantin Osipov 2019-08-19 16:53 ` [PATCH v2 7/7] relay: join new replicas off read view Vladimir Davydov 2019-08-19 20:57 ` [tarantool-patches] " Konstantin Osipov 2019-08-20 8:16 ` Vladimir Davydov 2019-08-20 11:53 ` Konstantin Osipov 2019-08-20 12:05 ` Vladimir Davydov 2019-08-20 13:50 ` Konstantin Osipov 2019-08-20 14:03 ` Vladimir Davydov 2019-08-21 22:08 ` Konstantin Osipov 2019-08-22 8:05 ` Vladimir Davydov [this message] 2019-08-19 16:54 ` [PATCH v2 0/7] Join replicas off the current " Vladimir Davydov 2019-08-20 8:53 ` Vladimir Davydov
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=20190822080554.GM13834@esperanza \ --to=vdavydov.dev@gmail.com \ --cc=kostja@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='Re: [tarantool-patches] Re: [PATCH v2 7/7] relay: join new replicas off read view' \ /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