You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nick Dimiduk (Jira)" <ji...@apache.org> on 2020/06/18 23:51:00 UTC
[jira] [Created] (HBASE-24588) Normalizer plan execution is not
consistent between plan types
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)