Same questions as Josh's.
1) We have RCs for beta1 now, which means only commits that can go in are
bug fixes only. This change - although important, needed from long time and
well done (testing, summary, etc) - seems rather very large to get into 2.0
now. Needs good justification why it has to be 2.1 instead of 2.0.

-- Appy


On Mon, Jan 8, 2018 at 8:34 AM, Josh Elser <els...@apache.org> wrote:

> -0 From a general project planning point-of-view (not based on the
> technical merit of the code) I am uncomfortable about pulling in a brand
> new feature after we've already made one beta RC.
>
> Duo -- can you expand on why this feature is so important that we should
> break our release plan? Are there problems that would make including this
> in a 2.1/3.0 unnecessarily difficult? Any kind of color you can provide on
> "why does this need to go into 2.0?" would be helpful.
>
>
> On 1/6/18 1:54 AM, Duo Zhang wrote:
>
>> https://issues.apache.org/jira/browse/HBASE-19397
>>
>> We aim to move the peer modification framework from zk watcher to
>> procedure
>> v2 in this issue and the work is done now.
>>
>> Copy the release note here:
>>
>> Introduce 5 procedures to do peer modifications:
>>
>>> AddPeerProcedure
>>> RemovePeerProcedure
>>> UpdatePeerConfigProcedure
>>> EnablePeerProcedure
>>> DisablePeerProcedure
>>>
>>> The procedures are all executed with the following stage:
>>> 1. Call pre CP hook, if an exception is thrown then give up
>>> 2. Check whether the operation is valid, if not then give up
>>> 3. Update peer storage. Notice that if we have entered this stage, then
>>> we
>>> can not rollback any more.
>>> 4. Schedule sub procedures to refresh the peer config on every RS.
>>> 5. Do post cleanup if any.
>>> 6. Call post CP hook. The exception thrown will be ignored since we have
>>> already done the work.
>>>
>>> The procedure will hold an exclusive lock on the peer id, so now there is
>>> no concurrent modifications on a single peer.
>>>
>>> And now it is guaranteed that once the procedure is done, the peer
>>> modification has already taken effect on all RSes.
>>>
>>> Abstracte a storage layer for replication peer/queue manangement, and
>>> refactored the upper layer to remove zk related naming/code/comment.
>>>
>>> Add pre/postExecuteProcedures CP hooks to RegionServerObserver, and add
>>> permission check for executeProcedures method which requires the caller
>>> to
>>> be system user or super user.
>>>
>>> On rolling upgrade: just do not do any replication peer modifications
>>> during the rolling upgrading. There is no pb/layout changes on the
>>> peer/queue storage on zk.
>>>
>>>
>> And there are other benefits.
>> First, we have introduced a general procedure framework to send tasks to
>> RS
>> and report the report back to Master. It can be used to implement other
>> operations such as ACL change.
>> Second, zk is used as a external storage now since we do not depend on zk
>> watcher any more, it will be much easier to implement a 'table based'
>> replication peer/queue storage.
>>
>> Please vote:
>> [+1] Agree
>> [-1] Disagree
>> [0] Neutral
>>
>> Thanks.
>>
>>


-- 

-- Appy

Reply via email to