Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-24590

Clone snapshot with optional table level property overrides

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 3.0.0-alpha-1, 2.3.0, 1.6.0
    • Fix Version/s: None
    • Component/s: API, master, shell
    • Labels:
      None

      Description

      We have this use case where we try to clone from snapshots of a table with replication enabled. Cloning process just reads the TableDescriptor from the manifest and uses it for the new target table.

      In our case, the moment we clone it, replication kicks in and attempts to replicate table to peers but since the target table doesn't exist, it keeps throwing TNFE in a loop. I propose to add additional optional parameters to clone_snapshot that takes the target table property overrides (table leve/cf level).

      For example:

      clone_snapshot 'snapshotName', 'tableName'    # default
      clone_snapshot 'snapshotName', 'tableName', {NAME => 'f1', REPLICATION_SCOPE => 0 }
      clone_snapshot 'snapshotName, 'tableName', {MERGE_ENABLED => false}
      .....
      

       

      Implementation wise, this just adds a ModifyTableProcedure as a child procedure (if args are provided) for CloneSnapshotProcedure after CLONE_SNAPSHOT_ADD_TO_META, so we reuse most of the "modifyTable" code. 

      Also, since clone puts the table in a disabled state, using "ModifyTableProcedure" shouldn't cause any issues.

       Thoughts? Is there any easier way to do it?

       

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              bharathv Bharath Vissapragada
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated: