James Taylor created PHOENIX-3741:
-------------------------------------
Summary: Provide facility to copy a table
Key: PHOENIX-3741
URL: https://issues.apache.org/jira/browse/PHOENIX-3741
Project: Phoenix
Issue Type: Bug
Reporter: James Taylor
Original idea by [~samarthjain] - just want to capture it here as I think it's
very promising. There are often reasons to copy an entire table - for example
to take advantage of a new feature which is only supported for new tables (i.e.
column encoding and immutable storage scheme). One issue which is tricky is
ensuring that no rows are missed, since while the copy is occurring, the table
may be taking writes. To solve this, we can capitalize on our index building
logic. Under-the-covers, we could create the target table as an "index" on the
source table but keep the same exact schema for both the primary key (as the
indexed columns) and non primary key columns (as covered columns). Once an
index is created, future writes would be propagated to both the source and
target (i.e. index) table. Upon completion, we could manually tweak the table
type and ensure the correct coprocessors are in-place before allowing direct
writes to the table. The other nice aspect of this approach is that we could
copy the table synchronously or asynchronously since we already support that
today. We could also potentially block DDL changes to the source table while
the copy statement is running.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)