An open-source storage framework that enables building a Lakehouse architecture with compute engines including Spark, PrestoDB, Flink, Trino, and Hive and APIs
This PR introduces a new reader-writer table feature "redirection". This table feature would redirect the read and write query from the current storage location to a new storage location described inside the value of table feature.
The redirection has several phases to ensure no anomaly. To label these phases, we introduces four states:
NO-REDIRECT: This state indicates that redirect is not enabled on the table.
ENABLE-REDIRECT-IN-PROGRESS: This state indicates that the redirect process is still going on. No DML or DDL transaction can be committed to the table when the table is in this state.
REDIRECT-READY: This state indicates that the redirect process is completed. All types of queries would be redirected to the table specified inside RedirectSpec object.
DROP-REDIRECT-IN-PROGRESS: The table redirection is under withdrawal and the redirection property is going to be removed from the delta table. In this state, the delta client stops redirecting new queries to redirect destination tables, and only accepts read-only queries to access the redirect source table.
To ensure no undefined behavior, the valid procedures of state transition are:
Which Delta project/connector is this regarding?
Description
This PR introduces a new reader-writer table feature "redirection". This table feature would redirect the read and write query from the current storage location to a new storage location described inside the value of table feature.
The redirection has several phases to ensure no anomaly. To label these phases, we introduces four states:
To ensure no undefined behavior, the valid procedures of state transition are:
The protocol RFC document is on: https://github.com/delta-io/delta/issues/3702
How was this patch tested?
Unit Test of transition between different states of redirection.
Does this PR introduce any user-facing changes?
No