[
https://issues.apache.org/jira/browse/HBASE-7236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Shelukhin updated HBASE-7236:
------------------------------------
Attachment: HBASE-7236-v0.patch
Here's the "ready" patch minus the shell documentation (if something changes
I'd prefer to write that once).
Review is https://reviews.apache.org/r/8536/.
1) Created the mechanism in HTD and HCD.
2) Shell support (+renamed old "CONFIG" to USER_METADATA, as discussed for
example in HBASE-6894).
3) Tests.
4) Cleaned up metadata values duplicating config parameters, with some backward
compat.
It makes code simpler in places (no extra checks with different keys, just go
to config), e.g. for example we had the following inconsistency; HRegion code:
{code}
long flushSize = this.htableDescriptor.getMemStoreFlushSize();
if (flushSize == HTableDescriptor.DEFAULT_MEMSTORE_FLUSH_SIZE) {
flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE,
HTableDescriptor.DEFAULT_MEMSTORE_FLUSH_SIZE);
}
{code}
RegionSplitPolicy code:
{code}
this.flushSize = region.getTableDesc() != null ?
region.getTableDesc().getMemStoreFlushSize():
getConf().getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE,
HTableDescriptor.DEFAULT_MEMSTORE_FLUSH_SIZE);
{code}
Now both just go to config.
The cleanup preserves the old behavior, with one exception - the checks like
the one above ("if default in htd, go to config"), that were there because htd
returns the default when value is not set, will no longer apply when the
default is explictly set in the htd. Unlike in the past, where the behavior is
the same as if it's not specified at all, it will now actually use the value.
> add per-table/per-cf compaction configuration via metadata
> ----------------------------------------------------------
>
> Key: HBASE-7236
> URL: https://issues.apache.org/jira/browse/HBASE-7236
> Project: HBase
> Issue Type: New Feature
> Components: Compaction
> Affects Versions: 0.96.0
> Reporter: Sergey Shelukhin
> Assignee: Sergey Shelukhin
> Attachments: HBASE-7236-PROTOTYPE.patch, HBASE-7236-PROTOTYPE.patch,
> HBASE-7236-PROTOTYPE-v1.patch, HBASE-7236-v0.patch
>
>
> Regardless of the compaction policy, it makes sense to have separate
> configuration for compactions for different tables and column families, as
> their access patterns and workloads can be different. In particular, for
> tiered compactions that are being ported from 0.89-fb branch it is necessary
> to have, to use it properly.
> We might want to add support for compaction configuration via metadata on
> table/cf.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira