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
andnode
parameters -
node!
can be used to overridenode
: the reference is the partition reference (node-<i>
for standalone NEO, andneo-<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 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.