use of co.cask.cdap.data2.transaction.coprocessor.CConfigurationCacheSupplier in project cdap by caskdata.
the class DefaultTransactionProcessor method start.
@Override
public void start(CoprocessorEnvironment e) throws IOException {
if (e instanceof RegionCoprocessorEnvironment) {
RegionCoprocessorEnvironment env = (RegionCoprocessorEnvironment) e;
HTableDescriptor tableDesc = env.getRegion().getTableDesc();
String hbaseNamespacePrefix = tableDesc.getValue(Constants.Dataset.TABLE_PREFIX);
this.sysConfigTablePrefix = HTableNameConverter.getSysConfigTablePrefix(hbaseNamespacePrefix);
this.cConfCacheSupplier = new CConfigurationCacheSupplier(env.getConfiguration(), sysConfigTablePrefix, TxConstants.Manager.CFG_TX_MAX_LIFETIME, TxConstants.Manager.DEFAULT_TX_MAX_LIFETIME);
this.cConfCache = cConfCacheSupplier.get();
}
// Need to create the cConf cache before calling start on the parent, since it is required for
// initializing some properties in the parent class.
super.start(e);
}
use of co.cask.cdap.data2.transaction.coprocessor.CConfigurationCacheSupplier in project cdap by caskdata.
the class DefaultTransactionProcessor method start.
@Override
public void start(CoprocessorEnvironment e) throws IOException {
if (e instanceof RegionCoprocessorEnvironment) {
RegionCoprocessorEnvironment env = (RegionCoprocessorEnvironment) e;
HTableDescriptor tableDesc = env.getRegion().getTableDesc();
String hbaseNamespacePrefix = tableDesc.getValue(Constants.Dataset.TABLE_PREFIX);
this.sysConfigTablePrefix = HTableNameConverter.getSysConfigTablePrefix(hbaseNamespacePrefix);
this.cConfCacheSupplier = new CConfigurationCacheSupplier(env.getConfiguration(), sysConfigTablePrefix, TxConstants.Manager.CFG_TX_MAX_LIFETIME, TxConstants.Manager.DEFAULT_TX_MAX_LIFETIME);
this.cConfCache = cConfCacheSupplier.get();
}
// Need to create the cConf cache before calling start on the parent, since it is required for
// initializing some properties in the parent class.
super.start(e);
}
use of co.cask.cdap.data2.transaction.coprocessor.CConfigurationCacheSupplier in project cdap by caskdata.
the class ReferenceCountedSupplierTests method testSupplier.
@Test
public void testSupplier() throws Exception {
// ReferenceCountSupplier is created only once per CacheSupplier class. Thus it is fine to create separate
// CacheSupplier objects
CacheSupplier cConfSupplier = new CConfigurationCacheSupplier(null, null, DUMMY_PROPERTY, Integer.MAX_VALUE);
testGetSupplier(Lists.newArrayList(cConfSupplier));
testReleaseSupplier(Lists.newArrayList(cConfSupplier));
// Test to make sure we handle more releases than gets.
for (int i = 0; i < 10; i++) {
cConfSupplier.release();
}
// Test increase and decrease of counts for cConf supplier
testGetSupplier(Lists.<CacheSupplier>newArrayList(new CConfigurationCacheSupplier(null, null, DUMMY_PROPERTY, Integer.MAX_VALUE)));
testReleaseSupplier(Lists.<CacheSupplier>newArrayList(new CConfigurationCacheSupplier(null, null, DUMMY_PROPERTY, Integer.MAX_VALUE)));
// Repeat the tests for TopicMetadata CacheSupplier
testGetSupplier(Lists.<CacheSupplier>newArrayList(new TopicMetadataCacheSupplier(null, null, null, null, null)));
testReleaseSupplier(Lists.<CacheSupplier>newArrayList(new TopicMetadataCacheSupplier(null, null, null, null, null)));
testGetSupplier(Lists.<CacheSupplier>newArrayList(new TopicMetadataCacheSupplier(null, null, null, null, null)));
testReleaseSupplier(Lists.<CacheSupplier>newArrayList(new TopicMetadataCacheSupplier(null, null, null, null, null)));
// Tests multiple suppliers at the same time
List<CacheSupplier> cacheSupplierList = new ArrayList<>();
cacheSupplierList.add(new CConfigurationCacheSupplier(null, null, DUMMY_PROPERTY, Integer.MAX_VALUE));
cacheSupplierList.add(new TopicMetadataCacheSupplier(null, null, null, null, null));
testGetSupplier(cacheSupplierList);
testReleaseSupplier(cacheSupplierList);
}
Aggregations