NEO/ERP5: new schema of parameters, with overriding mechanism
The main change is a new and unique way to override parameters depending on where these parameters are used: - for NEO, the goal is to avoid a huge `node_list` value (in particular with MyRocks settings), whereas most of the time all values in the list are the same - for ERP5, we need a way to define different ZODB cache settings depending on the zope id (e.g. huge cache for some specialized zopes, a small cache for the validation node, etc. whereas currently a huge cache for all nodes would waste a lot of RAM) For any `key=value` parameter that can be overridden, overriding is done as follows: - `key` defines the default value (not required if the SR already defines one) - `key!=[[pattern, value],...]`: the SR takes the value of the first 2-tuple whose *some reference* matches the pattern For NEO: - new `node_count` and `node` parameters - `node!` can be used to override `node`: the *reference* is the partition reference (`node-<i>` for standalone NEO, and `neo-<i>` for ERP5) - `node_list` is deprecated (if still passed, the new parameters must not be present) For ERP5 ZODB settings, parameters can be overridden at both: - zodb level (e.g. `pool-size`, `cache-size`... oh, I've just discovered there exists `cache-size-bytes`) - storage level (e.g. `compress`, `cache-size`, etc. in the case of NEO) Here, the *reference* is the zope id (e.g. `actitivies-0`) The `pattern` is a Python regex that must match the whole reference. Another not-so-small change is that the schema is fixed to only require NEO `cluster` parameter when instanciating a standalone NEO. And a few fixes. /reviewed-on nexedi/slapos!661
Showing
Please register or sign in to comment