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)