Moving state into zookeeper is the wrong direction. Absolutely not. No, no, no. 
We can discuss it but it is very unlikely I would even not veto such a change. 
It doesn’t seem like a problem because you have other MUCH better and more 
viable options. 

> On Aug 13, 2021, at 7:50 AM, Stack <[email protected]> wrote:
> 
> Rough minutes from our meeting of  Wed Aug 11 17:04:44 PDT 2021
> 
> Attendees: Francis, Duo, Francis.
> 
> We moved to discuss the proposed agenda item, how to implement the
> "ROOT" Region.
> 
> Duo had a new proposal that we host meta Regions in zookeeper (either
> all in a single znode or a znode per location).
> 
> We talked about it. Mainly, it was noted that zookeeper doesn't scale,
> that a metatable in zk would not be able to satisfy
> "2.0.6 Support an hbase:meta Table of 10k Regions" [1], and that it also
> in violation of the old invariant that we keep no permanent state in
> zookeeper [2].
> 
> Much back and forth on the fact that we violate the invariant currently; i.e.
> there is info in zk now that can't be scrubbed; that we need to fix this 
> before
> we can go forward -- that the fact that meta location is currently persistent
> means we could make split meta Region locations also zk persistent. Counter
> arguments note that the original invariant script allowed that we had
> violations,
> that we have worked to undo, that addressing invariant violations was 
> off-topic,
> as well as variations on two wrongs do not make a right, etc.
> 
> We tried to reset to talk of previously suggested options of ROOT as a
> new table to host hbase:meta Regions or just use first-Region in
> hbase:meta as special case Region. A new ROOT table was generally
> dismissed as an impediment when small installs in no need of split meta.
> 
> The second approach was called 'ugly'  -- I think 'ugly' was the term
> used -- and too much if/else and possibly in the way of future evolutions.
> Counter suggestions thought any uglyness could be hidden from client and
> isolated and that this approach seemed to meet requirements.  
> Counter-arguments
> to the counter-argument where this approach can not hide everything from 
> client,
> as opposed to separate ROOT table or master local region... see [1] for 
> detail.
> 
> We ran out of time. Will try again next week (meantime on-going
> developments on design doc [1] and in master).
> 
> (Would be good if we could get others on the call, other PMCers
> with in an interest in split meta. Could be of help when we hit
> blockage)
> Thanks,
> S
> 
> 1. 
> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.wv90yxilng75
> 2. http://hbase.apache.org/book.html#design.invariants.zk.data
> 
> 
>> On Tue, Aug 10, 2021 at 6:11 PM Stack <[email protected]> wrote:
>> 
>> Meeting tomorrow afternoon @ 5pm (to accommodate Beijing time). Lets
>> continue our Split Meta Design Reset discussion.
>> 
>> Time: Aug 11, 2021 05:00 PM Pacific Time (US and Canada)
>> 
>> Join Zoom Meeting
>> https://us04web.zoom.us/j/73900142989?pwd=b2s1UmJ2a2hiUFRsRERYQzZBV0NHdz09
>> 
>> Meeting ID: 739 0014 2989
>> Passcode: hbase
>> 
>> Please review the design doc "Design/Brainstorming" Section 4.1 [1] before
>> the meeting.
>> 
>> Topics for discussion:
>> 
>> * Reports on progress since last meeting.
>> * How will we actually implement the ROOT table (as a distinct ROOT table,
>> as the first region of hbase:meta, etc.)
>> 
>> 1.
>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.ikbhxlcthjle
>> 
>> Thanks,
>> S
>> 
>> 
>>> On Tue, Aug 3, 2021 at 4:13 PM Stack <[email protected]> wrote:
>>> 
>>> Any time Yu Li!
>>> 
>>> No meeting tomorrow... Lets meet next week, the 10th.
>>> 
>>> Thanks,
>>> S
>>> 
>>>> On Wed, Jul 28, 2021 at 11:25 PM Yu Li <[email protected]> wrote:
>>> 
>>>> Thanks for the notes and efforts Stack, it's pretty helpful to know the
>>>> progress and latest status of the work!
>>>> 
>>>> Best Regards,
>>>> Yu
>>>> 
>>>> 
>>>> On Wed, 28 Jul 2021 at 12:13, Stack <[email protected]> wrote:
>>>> 
>>>>> Note, no meeting tomorrow. We'll meet next week on the 4th or 5th of
>>>>> August.
>>>>> Thanks,
>>>>> S
>>>>> 
>>>>> On Thu, Jul 22, 2021 at 8:53 PM Stack <[email protected]> wrote:
>>>>> 
>>>>>> Notes from yesterday's meeting (attendees, please amend if I
>>>> misrepresent
>>>>>> or if you have anything extra to add!)
>>>>>> 
>>>>>> Split Meta Design Reset Status
>>>>>> 
>>>>>> Wed Jul 21 21:24:38 PDT 2021
>>>>>> 
>>>>>> Attendees: Bharath, Stack, Duo, and Francis
>>>>>> 
>>>>>> We went over the new updates to the Brainstorming [1] section under
>>>>>> 
>>>>>> Design in the Super Split Meta Design doc [2].
>>>>>> 
>>>>>> First was the new addition, 4.1.2 Extend (& Move) ConnectionRegistry;
>>>>> hide
>>>>>> 
>>>>>> ROOT from Client [3]. In particular, filling out how "ROOT" might be
>>>>>> 
>>>>>> implemented behind the new API in ConnectionRegistry. On option 1.,
>>>>>> 
>>>>>> replicating master-local Region to RegionServers, options considered
>>>>>> 
>>>>>> included
>>>>>> 
>>>>>> * Listener on master-local Region WAL to replicate.
>>>>>> 
>>>>>> * Perhaps Read-Replica but master-local is not an actual Region
>>>>>> 
>>>>>> * Needs to be incremental edits because ROOT could get too big to
>>>> ship
>>>>>> 
>>>>>>   in a lump; need to visit how...
>>>>>> 
>>>>>> * Possibly in-memory-only Regions on RS replicated from master-local
>>>>>> 
>>>>>>   Region via WAL tailing <= [email protected]
>>>>>> 
>>>>>> * Which RegionServers? Those hosting ROOT replicas?
>>>>>> 
>>>>>> * How to bootstrap? Failure scenarios.
>>>>>> 
>>>>>> * This would be a new replication system alongside current; could
>>>>>> 
>>>>>>   evolve to replace/improve old?
>>>>>> 
>>>>>> Duo offered to look into means of replicating the master-local Region
>>>>>> 
>>>>>> out to RegionServers.
>>>>>> 
>>>>>> Next up was discussion constrasting ROOT as a standalone table vs
>>>>>> 
>>>>>> First-meta Region-as-Root (see 4.1.1 hbase:meta,,1 as ROOT [4]); i.e.
>>>>>> 
>>>>>> options 2 and 3 for how we'd implement a ROOT. One item that came up
>>>>>> 
>>>>>> was whether a need to specify one replica count for a ROOT table vs
>>>>>> 
>>>>>> another for hbase:meta. If so, then it would be argument for ROOT as
>>>>>> 
>>>>>> standalone table (Others of us argued it not a concern of
>>>> consequence).
>>>>>> 
>>>>>> If ROOT access is behind a new simple API in ConnectionRegistry, how
>>>>>> 
>>>>>> to stop clients reading hbase:meta table if not Master or fronted by
>>>>>> 
>>>>>> a ConnectionRegistry request? (Should be able to switch on client
>>>>>> 
>>>>>> identity/source). One suggestion for First-meta-Region-as-ROOT was
>>>>>> 
>>>>>> NOT returning the first Region to the client post-meta split when
>>>>>> 
>>>>>> accessing via the simple API. Some concern this would confuse old
>>>>>> 
>>>>>> Clients (Francis was going to take a look).
>>>>>> 
>>>>>> Moved to discussion how we'd move ConnectionRegistry from
>>>>>> 
>>>>>> hosted-by-Master to hosted-by-RegionServers. How to bootstrap such a
>>>>>> 
>>>>>> system came up? Where do clients go? How do they know which
>>>>>> 
>>>>>> RegionServers (special regionserver group?  Every RS fields
>>>>>> 
>>>>>> ConnectionRegistry requests but only designated core serve the ROOT
>>>>>> 
>>>>>> lookup APIs?). This was a TODO.
>>>>>> 
>>>>>> This led naturally into 4.1.5 System RS group for client meta
>>>> services
>>>>>> 
>>>>>> [5], a new addition under Brainstorming. Discussion. Bharath to look
>>>>>> 
>>>>>> into feedback.
>>>>>> 
>>>>>> On the end of the discussion, group expressed support for adding
>>>>>> 
>>>>>> simple API to the ConnectionRegistry to hide ROOT implementation
>>>>>> 
>>>>>> detail from client. Support was expressed for moving
>>>> ConnectionRegistry
>>>>>> 
>>>>>> from Master to RegionServers. Intent is to move forward on design of
>>>>>> 
>>>>>> these pieces: e.g. how client bootstraps.
>>>>>> 
>>>>>> Support was expressed for getting at least the bones of a split meta
>>>>>> 
>>>>>> into an hbase3 before the RCs.
>>>>>> 
>>>>>> Where we'd actually store hbase:meta Region locations -- i.e. how a
>>>>>> 
>>>>>> "ROOT' would be implemented -- was for our next meeting informed by
>>>>>> 
>>>>>> research of the various approaches noted mostly above. It was
>>>>>> 
>>>>>> also thought that the new ConnectionRegistry should not preclude
>>>>>> 
>>>>>> making progress on the "ROOT" implementation.
>>>>>> 
>>>>>> Will post notice of next meeting (next Weds or the one
>>>>>> 
>>>>>> following).
>>>>>> 
>>>>>> 1.
>>>>>> 
>>>>> 
>>>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.wr0fwvw06j7n
>>>>>> 
>>>>>> 2.
>>>>>> 
>>>>> 
>>>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.9s666p6no9cq
>>>>>> 
>>>>>> 3.
>>>>>> 
>>>>> 
>>>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.90th11txi153
>>>>>> 
>>>>>> 4.
>>>>>> 
>>>>> 
>>>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.ikbhxlcthjle
>>>>>> 
>>>>>> 5.
>>>>>> 
>>>>> 
>>>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.utoenf10t05b
>>>>>> 
>>>>>> On Tue, Jul 20, 2021 at 11:00 AM Stack <[email protected]> wrote:
>>>>>> 
>>>>>>> Lets meet tomorrow. Please review the design doc
>>>> "Design/Brainstorming"
>>>>>>> Section 4.1 [1] before the meeting if you can (No harm if a refresh
>>>> of
>>>>> the
>>>>>>> requirements section while you are at it).
>>>>>>> 
>>>>>>> Topic: Split Meta Design Reset Status
>>>>>>> Time: Jul 21, 2021 05:00 PM Pacific Time (US and Canada)
>>>>>>> 
>>>>>>> Join Zoom Meeting
>>>>>>> 
>>>>> 
>>>> https://us04web.zoom.us/j/77318920525?pwd=OFZXZFVPSHJLaGNsby9SN25OV1F2Zz09
>>>>>>> 
>>>>>>> Meeting ID: 773 1892 0525
>>>>>>> Passcode: hbase
>>>>>>> 
>>>>>>> Thanks,
>>>>>>> S
>>>>>>> 
>>>>>>> 1. 1.
>>>>>>> 
>>>>> 
>>>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.wr0fwvw06j7n
>>>>>>> 
>>>>>>> On Thu, Jul 8, 2021 at 1:04 PM Stack <[email protected]> wrote:
>>>>>>> 
>>>>>>>> Meeting notes (Meeting happend after I figured the zoom had a
>>>> 'waiting
>>>>>>>> room' -- sorry Duo)
>>>>>>>> 
>>>>>>>> Split Meta Status Zoom Meeting
>>>>>>>> Wed Jul  7, 2021 @ 5pm for ~90minutes
>>>>>>>> Attendees: Duo, Francis, Stack, and Clay
>>>>>>>> Agenda: Mainly talk about the one-pager design and PoC proposed in
>>>> [2]
>>>>>>>> and added to the
>>>>>>>> split-meta design doc here [1] (hereafter, the 'hbase:meta,,1 as
>>>> ROOT'
>>>>>>>> approach)
>>>>>>>> 
>>>>>>>> Duo suggested no advantage treating the first meta of hbase:meta
>>>> table
>>>>>>>> special; as a "root"
>>>>>>>> and other comments (see remarks in [2]).
>>>>>>>> 
>>>>>>>> Some pushback. When meta is NOT split, all works as it did before
>>>> (big
>>>>>>>> on backward-compatible).
>>>>>>>> 
>>>>>>>> Duo suggested just intro a ROOT table altogether rather than treat
>>>> the
>>>>>>>> first Region
>>>>>>>> in the hbase:meta table as a 'root' and then mirror to zk the first
>>>>> meta
>>>>>>>> region; if no
>>>>>>>> split, then old clients should just work even though now hbase
>>>> cluster
>>>>>>>> has a ROOT table.
>>>>>>>> Discussion. If no split, what's to do, etc.?
>>>>>>>> 
>>>>>>>> Duo expressed concern that if split-meta is not on always --
>>>> enabled
>>>>>>>> optionally -- then
>>>>>>>> the code path will not see exercise and split-meta will likely
>>>> fail and
>>>>>>>> go the way of
>>>>>>>> prefix tree and distributed log replay -- a feature that failed,
>>>>>>>> cluttered up the
>>>>>>>> code base, and only later was removed. Discussion. Was allowed this
>>>>>>>> could happen.
>>>>>>>> Counter examples: RegionServer Groups. A few of the attendees
>>>>>>>> volunteered they need
>>>>>>>> split meta for their production so would try to see it through.
>>>>>>>> 
>>>>>>>> Some back and forth. Duo allowed that merit to the 'hbase:meta,,1
>>>> as
>>>>>>>> ROOT' if we don't
>>>>>>>> split; not much changes.
>>>>>>>> 
>>>>>>>> Comment on the PoC that its all
>>>>>>>> 
>>>>>>>>  if 'first special meta region' do this
>>>>>>>>  else do something else...
>>>>>>>> 
>>>>>>>> (all over the codebase) but it was suggested that this will be the
>>>> case
>>>>>>>> if ROOT table
>>>>>>>> added also and argued any implementation will have this issue (if
>>>> ROOT
>>>>>>>> then....) and
>>>>>>>> THAT ugly 'root' comparator too whether a ROOT table or the
>>>>>>>> 'hbase:meta,,1 as ROOT'
>>>>>>>> approach.
>>>>>>>> 
>>>>>>>> Clay asking if meta is a bottleneck (Clay played the 'operator' and
>>>>>>>> 'new-to-the-topic'
>>>>>>>> roles). Some discussion around how indeed it is and why we want to
>>>>> split
>>>>>>>> meta at all.
>>>>>>>> 
>>>>>>>> Clay mentioned how Master is inline for data now (Master-hosted
>>>>>>>> Registry)....
>>>>>>>> Discussion. Hopefully temporary state -- Registry doesn't need to
>>>> be
>>>>>>>> hosted on
>>>>>>>> Master -- and Master will return to its background role -- soon.
>>>>>>>> 
>>>>>>>> Clay brought up rollback after meta split. Discussion. Some
>>>> agreement
>>>>> it
>>>>>>>> could be done for
>>>>>>>> 'hbase:meta,,1 as ROOT' approach (but would be UGLY!). If root
>>>> table
>>>>> and
>>>>>>>> client had
>>>>>>>> started to use ROOT, it might be harder...
>>>>>>>> 
>>>>>>>> Duo suggested that we not change the client at all; that client
>>>> stays
>>>>>>>> same however split
>>>>>>>> meta is implemented (with addition of a root table or using
>>>>>>>> hbase:meta,,1 as 'root').
>>>>>>>> This sounded attractive. We discussed how this could be done in a
>>>>>>>> backward compatible way;
>>>>>>>> add simple location lookup API to Registry...A write-up on how this
>>>>>>>> might work will be posted
>>>>>>>> in next day or so for others to review (Need to figure getting
>>>> Registry
>>>>>>>> off Master).
>>>>>>>> 
>>>>>>>> Clay suggested, as an operator, how he thought the split meta
>>>> should
>>>>>>>> roll out. One of us
>>>>>>>> claimed this described the 'hbase:meta,,1 as ROOT' approach.
>>>>>>>> 
>>>>>>>> Duo had to go to work so we called it quits and said we'd meet
>>>> again
>>>>>>>> same time, next week.
>>>>>>>> 
>>>>>>>> 1.
>>>>>>>> 
>>>>> 
>>>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.ikbhxlcthjle
>>>>>>>> 2. https://issues.apache.org/jira/browse/HBASE-25761
>>>>>>>> 
>>>>>>>> On Wed, Jul 7, 2021 at 5:09 PM 张铎(Duo Zhang) <
>>>> [email protected]>
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> Is it only me? I tried to join the meeting but it always tell me
>>>> that
>>>>> I
>>>>>>>>> need to wait for the presenter to invite me to join...
>>>>>>>>> 
>>>>>>>>> Stack <[email protected]> 于2021年7月8日周四 上午1:04写道:
>>>>>>>>> 
>>>>>>>>>> Short notice but reminder that this meeting is today at 5pm PST
>>>> (We
>>>>>>>>> talked
>>>>>>>>>> of doing it earlier but in the end lets just keep the original
>>>> 5pm
>>>>>>>>> time).
>>>>>>>>>> Thanks,
>>>>>>>>>> S
>>>>>>>>>> 
>>>>>>>>>> On Tue, Jul 6, 2021 at 11:36 AM Stack <[email protected]> wrote:
>>>>>>>>>> 
>>>>>>>>>>> Lets do a quick chat on current state of hbase split-meta
>>>> project.
>>>>>>>>>>> 
>>>>>>>>>>> Francis has posted a suggested one-pager design in HBASE-25761
>>>>> which
>>>>>>>>>> would
>>>>>>>>>>> be good to review before the meeting if you can. Lets discuss
>>>> this
>>>>>>>>> and
>>>>>>>>>> any
>>>>>>>>>>> other suggestions for moving the project forward.
>>>>>>>>>>> 
>>>>>>>>>>> Meeting details below.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks,
>>>>>>>>>>> S
>>>>>>>>>>> 
>>>>>>>>>>> Topic Split Meta Design Reset Status
>>>>>>>>>>> Description Review one-pager design attached to
>>>>>>>>>>> https://issues.apache.org/jira/browse/HBASE-25761
>>>>>>>>>>> Time Jul 7, 2021 05:00 PM Pacific Time (US and Canada)
>>>>>>>>>>> 
>>>>>>>>>>> Meeting ID 736 3907 8852
>>>>>>>>>>> Security
>>>>>>>>>>> Passcode *hbase* Hide
>>>>>>>>>>> Waiting Room
>>>>>>>>>>> Invite Link
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>> 
>>>> https://us04web.zoom.us/j/73639078852?pwd=eHE2VCt2RG5FV2V2RXVNazlPVTVyQT09
>>>>>>>>>> Copy
>>>>>>>>>>> Invitation
>>>>>>>>>>> 
>>>>>>>>>>> On Mon, Mar 22, 2021 at 4:28 PM Stack <[email protected]>
>>>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> Now the requirements are in [1], we're going to move to the
>>>> next
>>>>>>>>> stage
>>>>>>>>>> --
>>>>>>>>>>>> actual design for split-meta -- and have set up a chat for
>>>> this
>>>>>>>>> thursday
>>>>>>>>>>>> afternoon (4PM California time/8AM Beijing time) to get the
>>>> ball
>>>>>>>>>> rolling.
>>>>>>>>>>>> Please come if interested. Zoom details are below.
>>>>>>>>>>>> 
>>>>>>>>>>>> Yours,
>>>>>>>>>>>> S
>>>>>>>>>>>> 1.
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>> 
>>>> https://docs.google.com/document/d/11ChsSb2LGrSzrSJz8pDCAw5IewmaMV0ZDN1LrMkAj4s/edit#heading=h.hdf0rnyevxz2
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> Topic: hbase split-meta design warmup chat
>>>>>>>>>>>> Time: Mar 25, 2021 04:00 PM Pacific Time (US and Canada)
>>>>>>>>>>>> 
>>>>>>>>>>>> Join Zoom Meeting
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>> 
>>>> https://us04web.zoom.us/j/75988003798?pwd=Wi9mU0w0T2ZjTFNBaE9lUmtTbHRpQT09
>>>>>>>>>>>> 
>>>>>>>>>>>> Meeting ID: 759 8800 3798
>>>>>>>>>>>> Passcode: hbase
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> On Tue, Jan 5, 2021 at 9:13 AM Stack <[email protected]>
>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> FYI, a few of us have been working on the redo/reset of the
>>>>> split
>>>>>>>>> meta
>>>>>>>>>>>>> design (HBASE-25382). We (think we've) finished the
>>>>> requirements.
>>>>>>>>> Are
>>>>>>>>>> there
>>>>>>>>>>>>> any others to consider?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Feedback and contribs welcome. Otherwise, on to the next
>>>> phase
>>>>> --
>>>>>>>>>> design.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> S
>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>> 
>>>> 
>>> 

Reply via email to