[
https://issues.apache.org/jira/browse/HBASE-9612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13784650#comment-13784650
]
stack commented on HBASE-9612:
------------------------------
>From an internal irc (Hope you don't mind me pasting here Elliott):
{code}
6:20 < _eclark> ok, so I reviewed the code and it looks good. one question I
have: is it worth it ? There's a lot of wrapping and un-wrapping to batch gets
with mutations
16:24 < stack> _eclark: yeah
16:24 < stack> _eclark: regression between 0.94 and 0.96
16:25 < stack> it could do regions of edits at a time rather than a
regions'-worth at a time
16:26 < stack> tsdb sends edits like this
16:27 < _eclark> Yeah that part I get. Mostly my question was about needing to
wrap mutations with gets.
16:27 < stack> we don't wrap mutations with gets
16:27 < stack> there is a union type, Action, which has a Get or a Mutation
16:30 < stack> MultiRequest -> RegionAction (1-*) -> Action (1-*) -> Get |
Mutation
16:31 < stack> The "Action -> Get | Mutation" is required... it is what we
currently have
16:31 < stack> The 'extra' bit is the RegionAction of which there can be 1-*
16:31 < stack> Thats the extra
16:31 < stack> Previous the MultiRequest had a region specifier
16:31 < _eclark> Yeah, that's the part that's added just asking because the
layers are adding up
16:32 < stack> Yeah.
16:32 < stack> Thought about it.
16:32 < stack> Its our dumbass 'batch' call
16:32 < stack> You can 'batch' anything
16:32 < _eclark> BLAH
16:33 < _eclark> i forgot about that one.
16:33 < stack> At least the data is elsewhere
16:33 < stack> its the killer, the joke line
16:33 < _eclark> ok +1
16:33 < _eclark> yeah too bad
16:35 < stack> I hate it but in my head argue we need to be like 0.94 first
before we deviate
16:36 < _eclark> Yeah I'd buy that
{code}
> Ability to batch edits destined to different regions
> ----------------------------------------------------
>
> Key: HBASE-9612
> URL: https://issues.apache.org/jira/browse/HBASE-9612
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.95.0, 0.95.1, 0.95.2, 0.96.0
> Reporter: Benoit Sigoure
> Assignee: stack
> Priority: Critical
> Fix For: 0.98.0, 0.96.0
>
> Attachments:
> 0001-fix-packaging-by-region-in-MultiServerCallable.patch, 9612.096.v5.txt,
> 9612revert.txt, 9612v2.txt, 9612v3.txt, 9612v4.txt, 9612v5.txt, 9612v5.txt,
> 9612v5.txt, 9612v7.txt, 9612v8.096.txt, 9612v8.txt, 9612v9.txt, 9612.wip.txt
>
>
> 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).
--
This message was sent by Atlassian JIRA
(v6.1#6144)