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

Inconsistent behavior for preBatchMutate in doMiniBatchMutate and processRowsWithLocks

    XMLWordPrintableJSON

Details

    • Umbrella
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • None
    • 2.0.0-beta-1, 2.0.0
    • Coprocessors
    • None
    • Two write paths Region.batchMutate() and Region.mutateRows() are unified and inconsistencies are resolved.

    Description

      In doMiniBatchMutate, the preBatchMutate is called before building WAL, but in processRowsWithLocks, we suggest the RowProcessor implementation to build WAL in process method, which is ahead of preBatchMutate.

      If a CP modifies the mutations, especially if it removes some cells from the mutations, then the behavior of processRowsWithLocks is broken. The changes applied to memstore and WAL will be different. And there is no way to remove entries from a WALEdit through CP.

      Attachments

        1. hbase-18703.master.007.patch
          78 kB
          Umesh Agashe
        2. hbase-18703.master.006.patch
          75 kB
          Umesh Agashe
        3. hbase-18703.master.005.patch
          71 kB
          Umesh Agashe
        4. hbase-18703.master.005.patch
          71 kB
          Umesh Agashe
        5. hbase-18703.master.005.patch
          71 kB
          Umesh Agashe
        6. hbase-18703.master.004.patch
          67 kB
          Umesh Agashe
        7. hbase-18703.master.003.patch
          62 kB
          Umesh Agashe
        8. hbase-18703.master.002.patch
          62 kB
          Umesh Agashe
        9. hbase-18703.master.001.patch
          61 kB
          Umesh Agashe

        Issue Links

          Activity

            People

              uagashe Umesh Agashe
              zhangduo Duo Zhang
              Votes:
              0 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: