Uploaded image for project: 'Phoenix'
  1. Phoenix
  2. PHOENIX-6624 Retire Tephra
  3. PHOENIX-6627

Remove all references to Tephra from 4.x and master

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 5.2.0
    • 4.x, tephra
    • None
    • Hide
      Support for the Tephra transaction engine has been removed from Phoenix.

      Ordinals of `TransactionFactory.Provider` are maintained to preserve compatibility with deployed system catalogs. The enum label for the former Tephra provider is deliberately renamed to `NOTAVAILABLE` so any downstreams with ill-advised direct dependencies on it will fail to compile.

      A coprocessor named `TephraTransactionalProcessor` is retained, with a no-op implementation, to prevent regionserver aborts in the worst case that a Tephra table remains deployed and the table coprocessor list has not changed. This should not happen. Users should be provided a migration runbook.

      The `commitDDLFence` phase of `MutationState` is retained although it may no longer be necessary. Recommend a follow up issue.

      `PhoenixTransactionContext.PROPERTY_TTL` is retained. It is possible a future txn engine option will have a similar design feature and will need to alter cell timestamps. Recommend a follow up issue.

      `storeNulls` for transactional tables remains enabled for compatibility. It is possible a future txn engine option will have a similar design feature and will need to manage tombstones in a non-default way. Recommend a follow up issue.

      Requests to ALTER a table from transactional to non transactional are still rejected. It is very likely OMID has similar complex state cleanup and removal requirements, and txn engines in general are likely to have this class of problem.
      Show
      Support for the Tephra transaction engine has been removed from Phoenix. Ordinals of `TransactionFactory.Provider` are maintained to preserve compatibility with deployed system catalogs. The enum label for the former Tephra provider is deliberately renamed to `NOTAVAILABLE` so any downstreams with ill-advised direct dependencies on it will fail to compile. A coprocessor named `TephraTransactionalProcessor` is retained, with a no-op implementation, to prevent regionserver aborts in the worst case that a Tephra table remains deployed and the table coprocessor list has not changed. This should not happen. Users should be provided a migration runbook. The `commitDDLFence` phase of `MutationState` is retained although it may no longer be necessary. Recommend a follow up issue. `PhoenixTransactionContext.PROPERTY_TTL` is retained. It is possible a future txn engine option will have a similar design feature and will need to alter cell timestamps. Recommend a follow up issue. `storeNulls` for transactional tables remains enabled for compatibility. It is possible a future txn engine option will have a similar design feature and will need to manage tombstones in a non-default way. Recommend a follow up issue. Requests to ALTER a table from transactional to non transactional are still rejected. It is very likely OMID has similar complex state cleanup and removal requirements, and txn engines in general are likely to have this class of problem.

    Description

      Removing tephra from the runtime is easy, as it uses the well defind TransactionProvider interfaces.
      Removing Tephra references from all the test cases is a much bigger task.

      Attachments

        Issue Links

          Activity

            People

              apurtell Andrew Kyle Purtell
              stoty Istvan Toth
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: