[PATCH] Allow to increase box.cfg.vinyl_memory and memtx_memory at runtime

Konstantin Osipov kostja at tarantool.org
Wed May 30 18:41:07 MSK 2018


* 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?
> +int
> +memtx_engine_set_memory(struct memtx_engine *memtx, size_t size)
> +{
> +	if (size < quota_total(&memtx->quota)) {

Shouldn't this be <= rather than < ?

> +		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.

> +
> +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.

Thank you for working on this!


-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov



More information about the Tarantool-patches mailing list