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

Ability to batch edits destined to different regions

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 0.95.0, 0.95.1, 0.95.2, 0.96.0
    • 0.98.0, 0.96.0
    • None
    • None
    • Incompatible change, Reviewed
    • Hide
      Restores being able to send many regions's worth of edits to a regionserver when running the multi call (previous it was doing a single region's worth at a time). Required redo of the multi proto model. Removed multiGet since it had same problem in that it only did a region's worth at a time; use the multi call instead to do multiGets. All should be transparent to the user but those trying to do clients against hbase will see changes (flags moved from GetRequest to Get and the above mentioned refactor of the MultiRequest proto).
      Show
      Restores being able to send many regions's worth of edits to a regionserver when running the multi call (previous it was doing a single region's worth at a time). Required redo of the multi proto model. Removed multiGet since it had same problem in that it only did a region's worth at a time; use the multi call instead to do multiGets. All should be transparent to the user but those trying to do clients against hbase will see changes (flags moved from GetRequest to Get and the above mentioned refactor of the MultiRequest proto).

    Description

      The old (pre-PB) "multi" and "multiPut" RPCs allowed one to batch edits destined to different regions. Seems like we've lost this ability after the switch to protobufs.

      The MultiRequest only contains one RegionSpecifier, and a list of MultiAction. The MultiAction message is contains either a single MutationProto or a Get (but not both – so its name is misleading as there is nothing "multi" about it). Also it seems redundant with MultiGetRequest, I'm not sure what's the point of supporting Get in MultiAction.

      I propose that we change MultiRequest to be a just a list of MultiAction, and MultiAction will contain the RegionSpecifier, the bool atomic and a list of MutationProto. This would be a non-backward compatible protobuf change.

      If we want we can support mixing edits and reads, in which case we'd also add a list of Get in MultiAction, and we'd have support having both that list and the list of MutationProto set at the same time. But this is a bonus and can be done later (in a backward compatible manner, hence no need to rush on this one).

      Attachments

        1. 0001-fix-packaging-by-region-in-MultiServerCallable.patch
          307 kB
          Michael Stack
        2. 9612.096.v5.txt
          262 kB
          Michael Stack
        3. 9612.v13-nico.patch
          1.65 MB
          Nicolas Liochon
        4. 9612.v14-nico.patch
          1.65 MB
          Nicolas Liochon
        5. 9612.wip.txt
          245 kB
          Michael Stack
        6. 9612-nico.v14.096.txt
          530 kB
          Michael Stack
        7. 9612-nico.v14.096.txt
          530 kB
          Michael Stack
        8. 9612-nico.v14.096.txt
          530 kB
          Michael Stack
        9. 9612revert.txt
          290 kB
          Michael Stack
        10. 9612v10.txt
          343 kB
          Michael Stack
        11. 9612-v10-nico.patch
          1.27 MB
          Nicolas Liochon
        12. 9612v11.txt
          326 kB
          Michael Stack
        13. 9612-v11-nico.patch
          1.61 MB
          Nicolas Liochon
        14. 9612v12.txt
          327 kB
          Michael Stack
        15. 9612v2.txt
          283 kB
          Michael Stack
        16. 9612v3.txt
          288 kB
          Michael Stack
        17. 9612v4.txt
          288 kB
          Michael Stack
        18. 9612v5.txt
          337 kB
          Michael Stack
        19. 9612v5.txt
          263 kB
          Michael Stack
        20. 9612v5.txt
          263 kB
          Michael Stack
        21. 9612v7.txt
          328 kB
          Michael Stack
        22. 9612v8.096.txt
          323 kB
          Michael Stack
        23. 9612v8.txt
          344 kB
          Michael Stack
        24. 9612v9.txt
          345 kB
          Michael Stack
        25. 9612v9.txt
          345 kB
          Michael Stack
        26. broken.patch
          1.64 MB
          Nicolas Liochon

        Activity

          People

            stack Michael Stack
            tsuna Benoit Sigoure
            Votes:
            0 Vote for this issue
            Watchers:
            15 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: