[ https://issues.apache.org/jira/browse/TEPHRA-210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15837067#comment-15837067 ]
ASF GitHub Bot commented on TEPHRA-210: --------------------------------------- Github user gokulavasan commented on a diff in the pull request: https://github.com/apache/incubator-tephra/pull/28#discussion_r97699482 --- Diff: tephra-hbase-compat-1.1-base/src/main/java/org/apache/tephra/hbase/coprocessor/TransactionProcessor.java --- @@ -303,10 +305,22 @@ public InternalScanner preCompactScannerOpen(ObserverContext<RegionCoprocessorEn // Get the latest tx snapshot state for the compaction TransactionVisibilityState snapshot = cache.getLatestState(); - // Record tx state before the compaction - if (compactionState != null) { + if (pruneEnable == null) { + Configuration conf = getConfiguration(c.getEnvironment()); + pruneEnable = conf.getBoolean(TxConstants.TransactionPruning.PRUNE_ENABLE, --- End diff -- In Tephra, it will always be available right? > Streamline where tephra properties are fetched in TransactionProcessor > coprocessor > ---------------------------------------------------------------------------------- > > Key: TEPHRA-210 > URL: https://issues.apache.org/jira/browse/TEPHRA-210 > Project: Tephra > Issue Type: Improvement > Reporter: Gokul Gunasekaran > Assignee: Gokul Gunasekaran > Fix For: 0.11.0-incubating > > > Tephra properties that are being in the TransactionProcessor coprocessor are: > TxConstants.ALLOW_EMPTY_VALUES_KEY > TxConstants.READ_NON_TX_DATA > TxConstants.Manager.CFG_TX_MAX_LIFETIME > TxConstants.TransactionPruning.PRUNE_ENABLE > TxConstants.TransactionPruning.PRUNE_STATE_TABLE > Out of the above properties, first two are table specific and thus ideally > should come from the tableDesc (and can default to the value in > env.getConfiguration). The other three properties should fetched from a > ``Configuration`` provided by a protected method that could be overriden by > derived classes (default implementation could still fetch it from > env.getConfiguration). Moreover, these two properties are used in filtering > of data during Hbase client calls and thus need to be available right away > (unlike the other three properties which are used only in background > operations such as compaction). > Use Case: When Tephra is used in other projects, the user of > TransactionProcessor coprocessor can provide a way to get this configuration > instead of relying on hbase-site.xml always. > Proposal: Read the table specific properties in coprocessor, such as > ALLOW_EMPTY_VALUES, READ_NON_TX_DATA from tableDescriptor and fall back to > env.getConfiguration. For other three properties, introduce a method whose > default implementation returns env.getConfiguration() that contains those > properties, which could be overriden by derived classes. Also, these three > values should loaded lazily when required during compaction/flush. -- This message was sent by Atlassian JIRA (v6.3.4#6332)