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 02/11] vinyl: factor load regulator out of quota Date: Sat, 29 Sep 2018 14:36:28 +0300 [thread overview] Message-ID: <20180929113628.kk6eqmfqo6apc7lz@esperanza> (raw) In-Reply-To: <20180929050046.GF32712@chai> On Sat, Sep 29, 2018 at 08:00:46AM +0300, Konstantin Osipov wrote: > * Vladimir Davydov <vdavydov.dev@gmail.com> [18/09/28 21:00]: > > Turned out that throttling isn't going to be as simple as maintaining > > the write rate below the estimated dump bandwidth, because we also need > > to take into account whether compaction keeps up with dumps. Tracking > > compaction progress isn't a trivial task and mixing it in a module > > responsible for resource limiting, which vy_quota is, doesn't seem to be > > a good idea. Let's factor out the related code into a separate module > > and call it vy_regulator. Currently, the new module only keeps track of > > the write rate and the dump bandwidth and sets the memory watermark > > accordingly, but soon we will extend it to configure throttling as well. > > > > Since write rate and dump bandwidth are now a part of the regulator > > subsystem, this patch renames 'quota' entry of box.stat.vinyl() to > > 'regulator'. It also removes 'quota.usage' and 'quota.limit' altogether, > > because memory usage is reported under 'memory.level0' while the limit > > can be read from box.cfg.vinyl_memory, and renames 'use_rate' to > > 'write_rate', because the latter seems to be a more appropriate name. > > > > Needed for #1862 > > It's all good except the name. The name is a bit more academic, > generic and long than we both prefer. Not longer, more generic or academic than 'scheduler'. Moreover, the two names match perfectly IMO. Why would you say it's academic BTW? 'Regulator' is a common engineering term. > Other names to consider: > vy_pressure_valve, vy_back_pressure, or simply vy_valve, vy_load_valve, > vy_load_control, vy_rate_control, vy_bandwidth, (I think if we add > more names to the table we will be able to find a good one). vy_valve - interesting, but I've never heard the term 'valve' used for anything but air/fluid pressure control. Besides, vy_valve_no_memory (the event triggered when quota hits the limit) sounds ridiculous. Anyway, the term 'regulator' is sometimes used instead of 'valve' while at the same time it may also denote other things that are supposed to control something (there are things called 'linear voltage regulator' and 'current regulator'). vy_load_valve, vy_pressure_valve - ditto plus too long. vy_back_pressure - it's not pressure, actually, it's an object with complex logic, one of tasks of which is to exert pressure. vy_bandwidth - bandwidth->dump_bandwidth, oh my... vy_rate_control, vy_load_control - these two are more or less acceptable by me, but too long - I'd prefer a one-word name, because it's easier to name a variable without causing confusing then (think of possible var names: ctl, lctl, ldctl, load_control sound either weird or are just too long). vy_control or vy_controller may be? But 'controller' is primarily associated with game consoles nowadays, while 'control' reminds me of a remote control I use to switch channels. I also considered 'monitor', but since this thing not just monitors the load, but also shapes it, I ruled it out. That said, I'm all for vy_regulator, and I don't share your concern. I suggest you take a look at what Google gives you when you search for valve, regulator, controller pictures: Valve: https://www.google.ru/search?newwindow=1&biw=1366&bih=671&tbm=isch&sa=1&ei=dWGvW_2hKsilsAHqlYqQCA&q=valve&oq=valve&gs_l=img.3...0.0.0.67630.0.0.0.0.0.0.0.0..0.0....0...1c..64.img..0.0.0....0.3Zf0u1mmIk0 Controller: https://www.google.ru/search?newwindow=1&biw=1366&bih=671&tbm=isch&sa=1&ei=zGGvW-rzN8mYsAHDvIXQAQ&q=controller&oq=controller&gs_l=img.3...0.0.0.2506.0.0.0.0.0.0.0.0..0.0....0...1c..64.img..0.0.0....0.MN_IjxK65_E Control: https://www.google.ru/search?newwindow=1&biw=1366&bih=671&tbm=isch&sa=1&ei=2WGvW8nsC8bVsAHv35OwBA&q=control&oq=control&gs_l=img.3...5597.6148.0.6310.0.0.0.0.0.0.0.0..0.0....0...1c.1.64.img..0.0.0....0.lmYqRhCCRmo Regulator: https://www.google.ru/search?newwindow=1&biw=1366&bih=671&tbm=isch&sa=1&ei=4GGvW6q9FMaisAHbx7CQAw&q=regulator&oq=regulator&gs_l=img.3...31737.32507.0.32629.0.0.0.0.0.0.0.0..0.0....0...1c.1.64.img..0.0.0....0.kgus6kvKzJc 'Regulator' looks exactly like what we want to implement to me :-)
next prev parent reply other threads:[~2018-09-29 11:36 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-09-28 17:39 [PATCH v2 00/11] vinyl: transaction throttling infrastructure Vladimir Davydov 2018-09-28 17:39 ` [PATCH v2 01/11] vinyl: add helper to start scheduler and enable quota on startup Vladimir Davydov 2018-09-29 4:37 ` [tarantool-patches] " Konstantin Osipov 2018-09-28 17:40 ` [PATCH v2 02/11] vinyl: factor load regulator out of quota Vladimir Davydov 2018-09-29 5:00 ` [tarantool-patches] " Konstantin Osipov 2018-09-29 11:36 ` Vladimir Davydov [this message] [not found] ` <20180929114308.GA19162@chai> 2018-10-01 10:27 ` Vladimir Davydov 2018-10-01 10:31 ` Vladimir Davydov 2018-10-02 18:16 ` [tarantool-patches] " Konstantin Osipov 2018-10-03 8:49 ` Vladimir Davydov 2018-09-28 17:40 ` [PATCH v2 03/11] vinyl: minor refactoring of quota methods Vladimir Davydov 2018-09-29 5:01 ` [tarantool-patches] " Konstantin Osipov 2018-09-28 17:40 ` [PATCH v2 04/11] vinyl: move transaction size sanity check to quota Vladimir Davydov 2018-09-29 5:02 ` [tarantool-patches] " Konstantin Osipov 2018-09-28 17:40 ` [PATCH v2 05/11] vinyl: implement quota wait queue without fiber_cond Vladimir Davydov 2018-09-29 5:05 ` [tarantool-patches] " Konstantin Osipov 2018-09-29 11:44 ` Vladimir Davydov 2018-09-28 17:40 ` [PATCH v2 06/11] vinyl: enable quota upon recovery completion explicitly Vladimir Davydov 2018-09-29 5:06 ` [tarantool-patches] " Konstantin Osipov 2018-09-28 17:40 ` [PATCH v2 07/11] vinyl: zap vy_env::memory, read_threads, and write_threads Vladimir Davydov 2018-09-29 5:06 ` [tarantool-patches] " Konstantin Osipov 2018-09-28 17:40 ` [PATCH v2 08/11] vinyl: do not try to trigger dump in regulator if already in progress Vladimir Davydov 2018-09-28 17:40 ` [PATCH v2 09/11] vinyl: do not account zero dump bandwidth Vladimir Davydov 2018-10-12 13:27 ` Vladimir Davydov 2018-10-16 18:25 ` [tarantool-patches] " Konstantin Osipov 2018-10-17 8:44 ` Vladimir Davydov 2018-10-23 7:02 ` Konstantin Osipov 2018-09-28 17:40 ` [PATCH v2 10/11] vinyl: implement basic transaction throttling Vladimir Davydov 2018-09-28 17:40 ` [PATCH v2 11/11] vinyl: introduce quota consumer priorities Vladimir Davydov 2018-10-06 13:24 ` Konstantin Osipov 2018-10-08 11:10 ` Vladimir Davydov 2018-10-09 13:25 ` Vladimir Davydov 2018-10-11 7:02 ` Konstantin Osipov 2018-10-11 8:29 ` Vladimir Davydov 2018-10-03 9:06 ` [PATCH v2 00/11] vinyl: transaction throttling infrastructure 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=20180929113628.kk6eqmfqo6apc7lz@esperanza \ --to=vdavydov.dev@gmail.com \ --cc=kostja@tarantool.org \ --cc=tarantool-patches@freelists.org \ --subject='Re: [tarantool-patches] Re: [PATCH v2 02/11] vinyl: factor load regulator out of quota' \ /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