[ https://issues.apache.org/jira/browse/HBASE-26476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Duo Zhang updated HBASE-26476: ------------------------------ Fix Version/s: 2.5.0 3.0.0-alpha-2 Hadoop Flags: Reviewed Resolution: Fixed Status: Resolved (was: Patch Available) Pushed to master and branch-2. Thanks [~comnetwork] for contributing. Do you think we need to apply this to branch-2.4? > Make DefaultMemStore extensible for HStore.memstore > ---------------------------------------------------- > > Key: HBASE-26476 > URL: https://issues.apache.org/jira/browse/HBASE-26476 > Project: HBase > Issue Type: Bug > Affects Versions: 3.0.0-alpha-1, 2.4.8 > Reporter: chenglei > Assignee: chenglei > Priority: Major > Fix For: 2.5.0, 3.0.0-alpha-2 > > > When {{HStore.memstore}} is {{DefaultMemStore}} , I find that it is > impossible to extend {{DefaultMemStore}} to add some custom logic when I was > work on HBASE-26465, because following code in {{HStore.getMemstore}} and > {{HStore.getMemstore}} is a private method and is called in {{HStore}} ctor > .We should make the {{DefaultMemStore}} extensible just as in branch-1. > {code:java} > switch (inMemoryCompaction) { > case NONE: > ms = ReflectionUtils.newInstance(DefaultMemStore.class, > new Object[] { conf, getComparator(), > this.getHRegion().getRegionServicesForStores()}); > break; > default: > Class<? extends CompactingMemStore> clz = > conf.getClass(MEMSTORE_CLASS_NAME, > CompactingMemStore.class, CompactingMemStore.class); > ms = ReflectionUtils.newInstance(clz, new Object[]{conf, > getComparator(), this, > this.getHRegion().getRegionServicesForStores(), > inMemoryCompaction}); > } > return ms; > } > {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)