Skip to content

NEO/ERP5: new schema of parameters, with overriding mechanism

Julien Muchembled requested to merge override_parameters into master

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.

Merge request reports