[ 
https://issues.apache.org/jira/browse/HBASE-24588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17140324#comment-17140324
 ] 

Viraj Jasani commented on HBASE-24588:
--------------------------------------

[~ndimiduk] If you already had some patch or started working on this, please 
let me know, I will unassign myself. If not, let me try to work on this and see 
if I can make a patch ready for review.

> Normalizer plan execution is not consistent between plan types
> --------------------------------------------------------------
>
>                 Key: HBASE-24588
>                 URL: https://issues.apache.org/jira/browse/HBASE-24588
>             Project: HBase
>          Issue Type: Bug
>          Components: master, Normalizer
>    Affects Versions: 2.3.0
>            Reporter: Nick Dimiduk
>            Assignee: Viraj Jasani
>            Priority: Major
>
> I left a comment on a merged 
> [commit|https://github.com/apache/hbase/commit/5d0e0fc5fd09bddb2d766d1e24e28e472961f454#r39987289]
>  where a little discussion has blossomed. Right now the normalizer produces 
> two types of plans: "split" or "merge". The master receives the list of plans 
> and executes them in a simple loop. The way it does the actual execution is 
> delegated off to the plan implementation.
> The bug I noticed is that the two implementations are subtly different. Both 
> use async APIs to submit procedures, but "split" blocks on completion while 
> "merge" does not. Furthermore, because "split" blocks, it's able to capture 
> any exception that's thrown, while "merge" cannot.
> These implementations should be made consistent. My thinking at the moment is 
> this {{execute}} method should instead be named {{submit}}, creating and 
> returning the {{Future}} that represents whatever work it submitted, and the 
> calling context should handle the resolution of those futures in a single 
> place.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to