[ https://issues.apache.org/jira/browse/HBASE-24588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Viraj Jasani reassigned HBASE-24588: ------------------------------------ Assignee: Viraj Jasani > 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)