Uploaded image for project: 'Phoenix Tephra'
  1. Phoenix Tephra
  2. TEPHRA-210

Streamline where tephra properties are fetched in TransactionProcessor coprocessor

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.11.0-incubating
    • None
    • None

    Description

      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.

      Attachments

        Activity

          People

            gokulavasan Gokul Gunasekaran
            gokulavasan Gokul Gunasekaran
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: