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

Agile BoardAttach filesAttach ScreenshotVotersStop watchingWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    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

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment