Search in sources :

Example 6 with CConfigurationCacheSupplier

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);
}
Also used : RegionCoprocessorEnvironment(org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment) CConfigurationCacheSupplier(co.cask.cdap.data2.transaction.coprocessor.CConfigurationCacheSupplier) HTableDescriptor(org.apache.hadoop.hbase.HTableDescriptor)

Example 7 with CConfigurationCacheSupplier

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);
}
Also used : RegionCoprocessorEnvironment(org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment) CConfigurationCacheSupplier(co.cask.cdap.data2.transaction.coprocessor.CConfigurationCacheSupplier) HTableDescriptor(org.apache.hadoop.hbase.HTableDescriptor)

Example 8 with CConfigurationCacheSupplier

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);
}
Also used : TopicMetadataCacheSupplier(co.cask.cdap.messaging.TopicMetadataCacheSupplier) CConfigurationCacheSupplier(co.cask.cdap.data2.transaction.coprocessor.CConfigurationCacheSupplier) ArrayList(java.util.ArrayList) CacheSupplier(co.cask.cdap.data2.transaction.coprocessor.CacheSupplier) TopicMetadataCacheSupplier(co.cask.cdap.messaging.TopicMetadataCacheSupplier) CConfigurationCacheSupplier(co.cask.cdap.data2.transaction.coprocessor.CConfigurationCacheSupplier) Test(org.junit.Test)

Aggregations

CConfigurationCacheSupplier (co.cask.cdap.data2.transaction.coprocessor.CConfigurationCacheSupplier)8 HTableDescriptor (org.apache.hadoop.hbase.HTableDescriptor)7 RegionCoprocessorEnvironment (org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment)7 CacheSupplier (co.cask.cdap.data2.transaction.coprocessor.CacheSupplier)1 TopicMetadataCacheSupplier (co.cask.cdap.messaging.TopicMetadataCacheSupplier)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1