I'd like to engage the community in a discussion about how we can
better identify configurations that are considered experimental.
The current situation is that we usually don't talk about them too
much and users will find them while googling, reading the code or
hbase-defaults.xml. In the latter, we have configs that are marked as
experimental in their description. For example in 0.94 we have:
The amount of off heap space to be allocated towards the experimental
off heap cache. If you desire the cache to be disabled, simply set this
value to 0.
Discussing with the other devs here, we thought we could use a simple
prefix to identify those configs so that it's really obvious that you
may be getting into unknown territory. For example:
hbase.offheapcache.percentage => experimental.hbase.offheapcache.percentage
A bunch of configs will have to be renamed like that, and for backward
compatibility we'll still have to accept both versions until they
graduate from being experimental but only document the one with the
prefix in hbase-defaults and the reference manual.
For the new experimental configurations, we should just have the
version with the "experimental." prefix until it becomes
Does that sound like a plan? I'm open to suggestions.