Hi HBase community,

HBASE-29137 was recently merged into master and branch-2, and I'd like to
gauge interest or concerns about bringing it into branch-2.6 as well.

In short, HBASE-29137 introduces a simple mechanism to annotate
configuration parameter constants (we have so many of them!) with
type information and optional validation predicates.

For example, when a constant is defined like this:

  public static final String HREGION_MEMSTORE_BLOCK_MULTIPLIER =
    ConfigKey.INT("hbase.hregion.memstore.block.multiplier", v -> v > 0);

TableDescriptorChecker will use the information to detect invalid values.
In the above case, it will reject anything that isn't a positive integer.

Previously, running this faulty alter command would crash HBase server.

  alter 't', { CONFIGURATION => { 'hbase.hregion.memstore.block.multiplier'
=> 'x' } }

Now, it's caught early by validation, making CREATE and ALTER operations
much safer.

You can read more about it here:
https://github.com/apache/hbase/pull/6709/files

Since this change improves robustness without affecting user-facing
behavior, I believe it would be a safe and valuable addition to branch-2.6.
Please let me know if you have any objections or concerns.

Thanks,
Junegunn Choi.

Reply via email to