[ 
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)

Reply via email to