Gokul Gunasekaran created TEPHRA-210:
----------------------------------------

             Summary: Streamline where tephra properties used in 
TransactionProcessor coprocessor
                 Key: TEPHRA-210
                 URL: https://issues.apache.org/jira/browse/TEPHRA-210
             Project: Tephra
          Issue Type: Improvement
            Reporter: Gokul Gunasekaran
            Assignee: Poorna Chandra


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)

Reply via email to