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

Remove Add/Modify/DeleteColumnFamilyProcedure in favor of using ModifyTableProcedure

    XMLWordPrintableJSON

Details

    • Incompatible change
    • Hide
      The RPC calls for Add/Modify/DeleteColumn have been removed and are now backed by ModifyTable functionality. The corresponding permissions in AccessController have been removed as well.

      The shell already bypassed these RPCs and used ModifyTable directly, and thus would not be getting these permission checks, this change brings the rest of the RPC inline with that.

      Coprocessor hooks for pre/post Add/Modify/DeleteColumn have likewise been removed. Coprocessors needing to take special actions on schema change should instead process ModifyTable events (which they should have been doing already, but it was easy for developers to miss this nuance).
      Show
      The RPC calls for Add/Modify/DeleteColumn have been removed and are now backed by ModifyTable functionality. The corresponding permissions in AccessController have been removed as well. The shell already bypassed these RPCs and used ModifyTable directly, and thus would not be getting these permission checks, this change brings the rest of the RPC inline with that. Coprocessor hooks for pre/post Add/Modify/DeleteColumn have likewise been removed. Coprocessors needing to take special actions on schema change should instead process ModifyTable events (which they should have been doing already, but it was easy for developers to miss this nuance).

    Description

      The shell changed from using separate add/modify/delete column calls to funneling everything through modify table for performance reasons. We know that using modify table works for everything. Let's drop the old code for Add/Modify/Delete Column so that we have a lower maintenance burden and fewer code paths to reason about.

      -------- Was: shell 'alter' command no longer distinguishes column add/modify/delete

      After HBASE-15641 all 'alter' commands go through a single modifyTable call at the end, so we no longer can easily distinguish add, modify, and delete column events. This potentially affects coprocessors that needed the update notifications for new or removed columns.

      Let's let the shell still make separate behaviour calls like it did before without undoing the batching that seems pretty useful.

      Attachments

        1. HBASE-18893.patch
          83 kB
          Mike Drob
        2. HBASE-18893.v2.patch
          108 kB
          Mike Drob
        3. HBASE-18893.v3.patch
          108 kB
          Mike Drob
        4. HBASE-18893.v4.patch
          111 kB
          Mike Drob

        Issue Links

          Activity

            People

              mdrob Mike Drob
              mdrob Mike Drob
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: