Nick Dimiduk created HBASE-24588:
------------------------------------

             Summary: 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


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