You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2017/03/16 20:03:42 UTC

[jira] [Created] (PHOENIX-3741) Provide facility to copy a table

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)