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_listvalue (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:
-
keydefines 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_countandnodeparameters -
node!can be used to overridenode: the reference is the partition reference (node-<i>for standalone NEO, andneo-<i>for ERP5) -
node_listis 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 existscache-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.