[PATCH] Allow to increase box.cfg.vinyl_memory and memtx_memory at runtime
Vladimir Davydov
vdavydov.dev at gmail.com
Wed May 30 19:08:25 MSK 2018
On Wed, May 30, 2018 at 06:41:07PM +0300, Konstantin Osipov wrote:
> * Vladimir Davydov <vdavydov.dev at gmail.com> [18/05/30 15:55]:
> > Closes #2634
> > ---
> > https://github.com/tarantool/tarantool/issues/2634
> > https://github.com/tarantool/tarantool/commits/gh-2634-allow-to-increase-memory-size
>
> It should still be possible to set the limit to the same size,
> what do you think?
It is possible - box.cfg{memtx_memory = box.cfg.memtx_memory} works with
this patch.
> > +int
> > +memtx_engine_set_memory(struct memtx_engine *memtx, size_t size)
> > +{
> > + if (size < quota_total(&memtx->quota)) {
>
> Shouldn't this be <= rather than < ?
I don't think so - we shouldn't raise error if the new limit equals the
current one.
>
> > + diag_set(ClientError, ER_CFG, "memtx_memory",
> > + "cannot decrease memory size at runtime");
> > + return -1;
> > + }
> > + quota_set(&memtx->quota, size);
> > + return 0;
> > +}
> > +int
> > +vinyl_engine_set_memory(struct vinyl_engine *vinyl, size_t size)
> > +{
> > + if (size < vinyl->env->quota.limit) {
>
> Same here.
>
> > + diag_set(ClientError, ER_CFG, "vinyl_memory",
> > + "cannot decrease memory size at runtime");
> > + return -1;
> > + }
> > + vy_quota_set_limit(&vinyl->env->quota, size);
> > + return 0;
> > +}
> >
> > /**
> > index 00000000..e3e89393
> > --- /dev/null
> > +++ b/test/box/lua/cfg_memory.lua
> > @@ -0,0 +1,9 @@
> > +#!/usr/bin/env tarantool
>
> Adding wal_mode=none will speed things up a bit when testing for
> memtx at least.
>
> Similar tests reside in wal_mode suite.
OK, I'll move the test to wal_off suite.
>
> > +
> > +local LIMIT = tonumber(arg[1])
> > +
> > +box.cfg{
> > + memtx_memory = LIMIT,
> > +}
> > +
> > +---
> > +- error: 'Incorrect value for option ''memtx_memory'': cannot decrease memory size
> > + at runtime'
> > +...
> > +box.slab.info().quota_size
> > +---
> > +- 268435456
>
> As usual, I'd prefer a less cpu intensive test. E.g. do you have
> to double the amount of memory ? Perhaps only slightly increasing it
> would test the same even better?
> The same remark applies to vinyl test.
OK, I'll try to tune the test.
More information about the Tarantool-patches
mailing list