+1

On Thu, Nov 25, 2021, 6:02 PM Ishan Chattopadhyaya <
[email protected]> wrote:

> I've started a formal vote thread for the proposal here. Thanks all.
>
> On Thu, Nov 25, 2021 at 12:10 PM Ishan Chattopadhyaya <
> [email protected]> wrote:
>
>> We have closed the Google Doc for further comments, and all changes have
>> been incorporated into the confluence document:
>> https://cwiki.apache.org/confluence/display/SOLR/SIP-15+Node+roles
>> Thanks for all the comments and feedback.
>>
>> On Thu, Nov 25, 2021 at 12:09 PM Ishan Chattopadhyaya <
>> [email protected]> wrote:
>>
>>> > Maybe one way to provide for the future is to place some requirements
>>> on roles, and designate that role-specific coordination information
>>> > be placed within the subtree for that role under
>>> /node-roles/<rolename>/ To facilitate this we could
>>> > 1. move the currently designed set of ephemeral nodes down one level
>>> into am "/available" node that reflects which nodes are currently up with
>>> the role (exactly what they do in the present design)
>>>
>>> We've introduced nesting in the ZK structure now. Ephemeral nodes for
>>> Solr node names will now be placed at
>>> /node-roles/<rolename>/nodes/<ephemeralnode>.
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Nov 25, 2021 at 12:04 PM Ishan Chattopadhyaya <
>>> [email protected]> wrote:
>>>
>>>>
>>>>
>>>> On Thu, Nov 25, 2021 at 4:35 AM Gus Heck <[email protected]> wrote:
>>>>
>>>>> Things I think still need to be clarified to define "Role" explicitly.
>>>>> Primarily to guide future implementations. Things I can think of include:
>>>>>
>>>>>    - What the bar for something to be a role vs being more
>>>>>    appropriate as a property/tag type concept. Essentially what is and is 
>>>>> not
>>>>>    expected (at this time) to be a role.
>>>>>
>>>>> We don't wish to set a bar for anything at this point, since I can't
>>>> imagine all future innovation that can happen. All we can do is present
>>>> representative examples. Common sense will dictate what is useful to have
>>>> as a role, and clearly we can't set a bar for that.
>>>>
>>>>
>>>>>
>>>>>    - What's the process for this? Do we want a SIP per role to ensure
>>>>>    good discussion? Are there some simple things a role might do that are
>>>>>    "normal" and don't require a SIP? Or maybe no sip generally?
>>>>>
>>>>> The community can decide on a case by case basis using established
>>>> community processes. I don't see the need to define a new process for this.
>>>>
>>>>
>>>>>
>>>>>    - Where a role is defined (enum? class? which module? core?
>>>>>    solrj?) and what motivates that choice (specifics such as
>>>>>    methods/properties can be left to impl of course)
>>>>>
>>>>> This can be discussed during the implementation phase. This SIP is for
>>>> the general concept, public interface and other non-code concerns. I don't
>>>> want to start another 20 page thread here debating enum vs class and other
>>>> things that might tickle someone's fancy. Lets cross the bridge once we get
>>>> to it.
>>>>
>>>>
>>>>>
>>>>>    - Naming conventions for roles... camel case? snake case? all
>>>>>    caps? what characters are allowed, Possibly discourage any ideas with 
>>>>> role
>>>>>    names that embed config options such as overseer_priority_1 and any 
>>>>> parsing
>>>>>    of role names.
>>>>>
>>>>>
>>>> We can discuss that on a case by case basis when new roles are
>>>> introduced. I've already proposed that the sysprops for roles should be in
>>>> lowercase, which rules out camelCase.
>>>>
>>>>
>>>>>
>>>>>    -
>>>>>
>>>>> If we answer those and bundle them with the 3 sections under the
>>>>> example api calls into a "Roles" section or "Definition of Roles" or
>>>>> something like that it seems good to me.
>>>>>
>>>>> Sure we could discuss any of this independently for each role in each
>>>>> sip but if we put guidance here we probably can skip that discussion for N
>>>>> out of M sips/tickets in the future (N being maximized if we choose well
>>>>> and write with clarity). Thus we'd be saving time in the long run and
>>>>> reduce the possibility that people propose something awkward and it slips
>>>>> through on lazy consensus.
>>>>>
>>>>> And of course it's Apache software so it can all be changed later by a
>>>>> vote or concensus. :)
>>>>>
>>>>> -Gus
>>>>>
>>>>> On Wed, Nov 24, 2021 at 3:21 PM Ishan Chattopadhyaya <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> > Moreover I think it's a very role specific notion, that is not a
>>>>>> good
>>>>>> > fit in the roles framework, so maybe should never be part of this
>>>>>> SIP.
>>>>>>
>>>>>> Regarding "capable" vs "currently providing", I agree with Ilan here ^
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 24, 2021 at 10:38 PM Gus Heck <[email protected]> wrote:
>>>>>>
>>>>>>> You do make a good point that the details can be very role specific.
>>>>>>> Maybe one way to provide for the future is to place some requirements on
>>>>>>> roles, and designate that role-specific coordination information be 
>>>>>>> placed
>>>>>>> within the subtree for that role under /node-roles/<rolename>/ To
>>>>>>> facilitate this we could
>>>>>>>
>>>>>>>    1. move the currently designed set of ephemeral nodes down one
>>>>>>>    level into am "/available" node that reflects which nodes are 
>>>>>>> currently up
>>>>>>>    with the role (exactly what they do in the present design)
>>>>>>>    2. Roles must store role related info in the data for the role
>>>>>>>    node, or in tree(s) that are peers to /available as they see fit.
>>>>>>>    3. Roles must have documentation detailing what they store where
>>>>>>>    and how it's used.
>>>>>>>    4. Roles (beyond those implemented in this SIP) should be
>>>>>>>    discussed in their own SIP (enforcing the non-trivial label concept 
>>>>>>> we all
>>>>>>>    seem to agree on)
>>>>>>>
>>>>>>>
>>>>>> I am not in favour of complicating the currently proposed design by
>>>>>> doing any of this now ^ If we need to, we can discuss this then.
>>>>>>
>>>>>>
>>>>>>> The bit that's not clear is where that documentation would live.
>>>>>>> It's not really material for the users, but more for the developers.
>>>>>>>
>>>>>>> On Wed, Nov 24, 2021 at 11:11 AM Ilan Ginzburg <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> I agree with Ishan that "currently providing" shouldn't be a current
>>>>>>>> concern for the SIP.
>>>>>>>> Moreover I think it's a very role specific notion, that is not a
>>>>>>>> good
>>>>>>>> fit in the roles framework, so maybe should never be part of this
>>>>>>>> SIP.
>>>>>>>>
>>>>>>>> Even on the Overseer example. Suppose we changed the current design
>>>>>>>> to
>>>>>>>> have a "main" node being Overseer and a secondary to be somewhat
>>>>>>>> active standby in case the main one goes down (imagine some form of
>>>>>>>> replication between the two?). Both would have the "Overseer" role,
>>>>>>>> but what they provide would be different. Overseer specific code
>>>>>>>> should be able to know what is provided by which node, because a
>>>>>>>> node
>>>>>>>> trying to use the Overseer service would have to talk to a specific
>>>>>>>> one of the two, not just one that currently provides.
>>>>>>>>
>>>>>>>> Same for data nodes. A data node can have replicas on it. But it may
>>>>>>>> not. If it doesn't, shall we say it has the capability but does not
>>>>>>>> provide? Of course not, nobody would suggest that. Because we know
>>>>>>>> that tracking the actual data is not a role level responsibility
>>>>>>>> but a
>>>>>>>> data (collection/shard/replica etc) tracking responsibility, done
>>>>>>>> using all the nice structures the code maintains in ZK and in caches
>>>>>>>> all over the place.
>>>>>>>>
>>>>>>>> Ilan
>>>>>>>>
>>>>>>>> On Wed, Nov 24, 2021 at 5:10 PM Gus Heck <[email protected]>
>>>>>>>> wrote:
>>>>>>>> >
>>>>>>>> > So we are potentially talking past each other. Let me re-clarify
>>>>>>>> since you've interpreted "configuration" differently (I think). What 
>>>>>>>> I'm
>>>>>>>> referring to in ZK is the "reflection of configuration" not the actual
>>>>>>>> configuration. This is why I'm asking the question of how much info 
>>>>>>>> should
>>>>>>>> be retained about a node after it goes down. Case in point zookeeper
>>>>>>>> embedded: The code might take different actions if it can see that a 
>>>>>>>> node
>>>>>>>> that had a running zookeeper did exist (and thus may return) vs a 
>>>>>>>> situation
>>>>>>>> where there's only 2 nodes playing zookeeper roles right now and no
>>>>>>>> evidence of a third ever having existed.
>>>>>>>> >
>>>>>>>> > Also you say you can't imagine anything beyond overseer... well I
>>>>>>>> could imagine that a cluster would want to say these 10 machines (but 
>>>>>>>> not
>>>>>>>> the other 40) are allowed to have zookeeper, and I want the cluster to 
>>>>>>>> to
>>>>>>>> have 3 node level of redundancy in zookeeper, and a new zookeeper 
>>>>>>>> should be
>>>>>>>> created and the data replicated to it if a zk node is lost for more 
>>>>>>>> than 30
>>>>>>>> minutes.
>>>>>>>> >
>>>>>>>> > On Wed, Nov 24, 2021 at 10:38 AM Ishan Chattopadhyaya <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> On Wed, Nov 24, 2021 at 9:05 PM Ishan Chattopadhyaya <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>> On Wed, Nov 24, 2021 at 8:19 PM Gus Heck <[email protected]>
>>>>>>>> wrote:
>>>>>>>> >>>>
>>>>>>>> >>>> Left some additional comments in the google doc, extracting
>>>>>>>> the key point for others here so they can know if they want to read the
>>>>>>>> google doc commentary:
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>> I'm addressing them here, inline.
>>>>>>>> >>>
>>>>>>>> >>>>
>>>>>>>> >>>> There is presently disagreement with my proposal that the sip
>>>>>>>> specify both how we track configuration (which I have been referring 
>>>>>>>> to as
>>>>>>>> "capability") and runtime state ("providing"). I see the primary value 
>>>>>>>> of
>>>>>>>> having a role concept as one of organizing the code and configuration 
>>>>>>>> in a
>>>>>>>> way that is easy to understand, which is why I'm in favor of this SiP
>>>>>>>> overall.
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>> I purposely don't want to complicate this design by allowing
>>>>>>>> for "capability" vs "currently providing" to be represented as first 
>>>>>>>> class
>>>>>>>> citizens. Besides the OVERSEER role (preferred overseer), I can't 
>>>>>>>> think of
>>>>>>>> concrete scenarios where such a concept could be applicable, and hence 
>>>>>>>> I
>>>>>>>> don't want to get ahead of myself in trying to address how to solve 
>>>>>>>> that.
>>>>>>>> Since the current proposal for dealing with roles is flexible and 
>>>>>>>> generic
>>>>>>>> enough, I don't think adding such extensions would be a problem. 
>>>>>>>> However, I
>>>>>>>> don't want to go down that rabbithole at this point in time.
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>>>
>>>>>>>> >>>>
>>>>>>>> >>>> If you don't want to tackle implementing the runtime state bit
>>>>>>>> I'm ok with that as long as we have a clear plan in the SIP of how this
>>>>>>>> type of information should be organized in the future.
>>>>>>>> >>>> The structure proposed in the SIP for information in zk seems
>>>>>>>> to map more clearly to runtime state than configuration, and seems 
>>>>>>>> like it
>>>>>>>> would inhibit a natural representation of such.
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>> The structure proposed allows for role specific configurations
>>>>>>>> (if needed). It doesn't provide for node specific configuration in ZK,
>>>>>>>> since all node properties should come from either solr.xml or 
>>>>>>>> sysprops. At
>>>>>>>> present, I don't think we ever have node specific info configuration 
>>>>>>>> in ZK
>>>>>>>> in any part of Solr, and I think we shouldn't go that route here.
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> Correction: "At present, I don't think we ever have node
>>>>>>>> specific configuration in ZK in any part of Solr, and I think we 
>>>>>>>> shouldn't
>>>>>>>> go that route here."
>>>>>>>> >>
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>>>
>>>>>>>> >>>>
>>>>>>>> >>>> Finally the structure in the SIP for zk information doesn't
>>>>>>>> specify if some of the nodes are ephemeral, and reliable for a 
>>>>>>>> "current"
>>>>>>>> list or if they are persistent over time. I feel like we may not yet 
>>>>>>>> have a
>>>>>>>> plan for how much information about nodes (n general) should be 
>>>>>>>> retained
>>>>>>>> while a node is down, which maybe needs to underlie this design.
>>>>>>>> >>>
>>>>>>>> >>>
>>>>>>>> >>> All the node names under the roles znodes are ephemeral. Added
>>>>>>>> this to the document (confluence and gdoc both).
>>>>>>>> >>>
>>>>>>>> >>>>
>>>>>>>> >>>>
>>>>>>>> >>>> -Gus
>>>>>>>> >>>>
>>>>>>>> >>>>
>>>>>>>> >>>> On Tue, Nov 23, 2021 at 10:34 PM Ishan Chattopadhyaya <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>
>>>>>>>> >>>>> I've synced back all changes to confluence. Both represent
>>>>>>>> the same document as of now.
>>>>>>>> >>>>> Please review and suggest if there are any outstanding
>>>>>>>> concerns. Thanks for all the feedback.
>>>>>>>> >>>>>
>>>>>>>> >>>>> I wish to proceed with the implementation based on lazy
>>>>>>>> consensus again.
>>>>>>>> >>>>>
>>>>>>>> >>>>> On Tue, Nov 23, 2021 at 9:38 PM Mike Drob <[email protected]>
>>>>>>>> wrote:
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> I should clarify, that my -1 was specifically about reaching
>>>>>>>> lazy consensus and not about that proposal itself.
>>>>>>>> >>>>>>
>>>>>>>> >>>>>> On Tue, Nov 23, 2021 at 9:42 AM Ishan Chattopadhyaya <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>
>>>>>>>> >>>>>>> > -1, I would like to see a proposal on list where it will
>>>>>>>> be permanently available
>>>>>>>> >>>>>>>
>>>>>>>> >>>>>>> It will be available in the confluence document (as it
>>>>>>>> currently is). The google docs is just for collecting temporary 
>>>>>>>> feedback,
>>>>>>>> thanks to easy inline commenting capability. We promised to consolidate
>>>>>>>> feedback in the gdoc and sync back to the SIP document in confluence. 
>>>>>>>> This
>>>>>>>> is reasonable enough expectations, and shouldn't be a worry enough for 
>>>>>>>> a -1.
>>>>>>>> >>>>>>>
>>>>>>>> >>>>>>> As of right now, while trying to address some concerns,
>>>>>>>> some edits have been made in gdocs by Noble that we'll sync back into
>>>>>>>> confluence; so that's the only divergence.
>>>>>>>> >>>>>>>
>>>>>>>> >>>>>>> On Tue, Nov 23, 2021 at 9:09 PM Ishan Chattopadhyaya <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>
>>>>>>>> >>>>>>>> > -1, I would like to see a proposal on list where it will
>>>>>>>> be permanently available
>>>>>>>> >>>>>>>> > in the archives instead of being directed to a Google
>>>>>>>> doc which can be edited at any point in time.
>>>>>>>> >>>>>>>> > This has been an incredibly difficult proposal to keep
>>>>>>>> track of.
>>>>>>>> >>>>>>>>
>>>>>>>> >>>>>>>> This entire SIP process has been incredibly difficult to
>>>>>>>> coordinate. The idea of doing this on a mail thread was a terrible one.
>>>>>>>> There's no archive available publicly for this list that doesn't break 
>>>>>>>> the
>>>>>>>> threading functionality (I guess someone among us is using some funky 
>>>>>>>> mail
>>>>>>>> client that's messing with Pony Mail). JIRA for discussion would've 
>>>>>>>> been
>>>>>>>> much better. I suppose JIRA used to have threaded discussions once 
>>>>>>>> upon a
>>>>>>>> time, that would've been very handy here.
>>>>>>>> >>>>>>>>
>>>>>>>> >>>>>>>> On Tue, Nov 23, 2021 at 9:07 PM Ishan Chattopadhyaya <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>
>>>>>>>> >>>>>>>>> Okay, sure, I'll rescind my assertion about having
>>>>>>>> reached a lazy consensus. I'll work through all the recent comments and
>>>>>>>> feedback.
>>>>>>>> >>>>>>>>> I think at the last moment, there was an edit by Noble to
>>>>>>>> the Google Doc that hasn't made it into the SIP document, and I'll 
>>>>>>>> review
>>>>>>>> that change, the recent comments and get back here tomorrow. Other than
>>>>>>>> that last moment change, the SIP document is up to date.
>>>>>>>> >>>>>>>>>
>>>>>>>> >>>>>>>>> On Tue, Nov 23, 2021 at 8:24 PM Gus Heck <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>>
>>>>>>>> >>>>>>>>>> Also, I don't know that it's defined anywhere, but I
>>>>>>>> feel that declaring lazy consensus on a SIP in less than a week is 
>>>>>>>> rushing
>>>>>>>> things. Some folks won't have the flexibility to address things daily 
>>>>>>>> and
>>>>>>>> I've been uncomfortably pulled away from paid work trying to keep up 
>>>>>>>> with
>>>>>>>> this as is. Lazy consensus should include at least one weekend (IMHO)
>>>>>>>> >>>>>>>>>>
>>>>>>>> >>>>>>>>>> On Tue, Nov 23, 2021 at 9:49 AM Gus Heck <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>>>
>>>>>>>> >>>>>>>>>>> IMHO two things must happen before lazy consensus wait
>>>>>>>> period can begin:
>>>>>>>> >>>>>>>>>>>   1) The wiki must be updated to reflect the results of
>>>>>>>> discussion in the google doc.
>>>>>>>> >>>>>>>>>>>   2) The fact that the wiki has been updated, and that
>>>>>>>> you think the discussion is at an end must be posted here, preferably 
>>>>>>>> with
>>>>>>>> a summary on the list.
>>>>>>>> >>>>>>>>>>>
>>>>>>>> >>>>>>>>>>> If it didn't happen on the list it didn't happen.
>>>>>>>> >>>>>>>>>>>
>>>>>>>> >>>>>>>>>>> Also the google doc has not been notifying me of
>>>>>>>> changes/responses. So a note here when you've responded and some time 
>>>>>>>> to
>>>>>>>> respond before the above steps are taken would be appreciated.
>>>>>>>> >>>>>>>>>>>
>>>>>>>> >>>>>>>>>>> -Gus
>>>>>>>> >>>>>>>>>>>
>>>>>>>> >>>>>>>>>>> On Tue, Nov 23, 2021 at 9:40 AM Mike Drob <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>> -1, I would like to see a proposal on list where it
>>>>>>>> will be permanently available in the archives instead of being 
>>>>>>>> directed to
>>>>>>>> a Google doc which can be edited at any point in time.
>>>>>>>> >>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>> This has been an incredibly difficult proposal to keep
>>>>>>>> track of.
>>>>>>>> >>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>> Mike
>>>>>>>> >>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>> On Tue, Nov 23, 2021 at 6:09 AM Ishan Chattopadhyaya <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>> This proposal has passed with lazy consensus. We can
>>>>>>>> proceed to the implementation phase.
>>>>>>>> >>>>>>>>>>>>> Thanks to everyone for feedback, esp. Gus for the
>>>>>>>> patience.
>>>>>>>> >>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>> On Sun, Nov 21, 2021 at 2:24 PM Gus Heck <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>> Thanks for adding that :) and Thanks to Nobel for
>>>>>>>> translating my ravings :). Sorry about the acronym. Amusingly I had to 
>>>>>>>> look
>>>>>>>> up gish gallop to understand what you meant :) I can assure you that I 
>>>>>>>> will
>>>>>>>> never gish gallop you or anyone on the list, and I find such techniques
>>>>>>>> repugnant. If I'm not making sense, I'm likely covering ground too 
>>>>>>>> fast,
>>>>>>>> skipping things that are in my head but not yours, expressing too many
>>>>>>>> tangents (when I start nesting parentheses this is (usually) a sign I'm
>>>>>>>> wandering too much), or I am simply mistaken about something. Always 
>>>>>>>> feel
>>>>>>>> free to ask me to explain!
>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>> -Gus
>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>> On Sun, Nov 21, 2021 at 12:17 AM Ishan
>>>>>>>> Chattopadhyaya <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>> Added both your suggestions to Google Docs for
>>>>>>>> inline commenting and the SIP document at confluence. Thanks for the
>>>>>>>> feedback.
>>>>>>>> >>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>> On Sun, Nov 21, 2021 at 10:28 AM Ishan
>>>>>>>> Chattopadhyaya <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>> I'll add the lifecycle details to the document as
>>>>>>>> well.
>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>> On Sun, 21 Nov, 2021, 9:08 am Ishan
>>>>>>>> Chattopadhyaya, <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>> Hi Gus,
>>>>>>>> >>>>>>>>>>>>>>>>> Thanks for bringing it up again. Initially, I
>>>>>>>> wasn't clear what you meant and mistook them for gish gallop.
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>> These were the things I am/was confused about
>>>>>>>> (Noble explained it to me what you mean):
>>>>>>>> >>>>>>>>>>>>>>>>> - adherence to DRY via zk
>>>>>>>> >>>>>>>>>>>>>>>>> - runtime config info should come from zk
>>>>>>>> >>>>>>>>>>>>>>>>> - add dynamic features
>>>>>>>> >>>>>>>>>>>>>>>>> - same interaction patterns for consulting config
>>>>>>>> values.
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>> Now, after Noble's help, I think I understand
>>>>>>>> your motivations.
>>>>>>>> >>>>>>>>>>>>>>>>> - DRY = Don't Repeat Yourself ;-)
>>>>>>>> >>>>>>>>>>>>>>>>> - You're suggesting that we have a standard way
>>>>>>>> to have role specific configurations (in ZK), so that a new role added
>>>>>>>> later can access the configurations in a standard way
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>> This is a very good suggestion, and makes
>>>>>>>> complete sense now. This was definitely a missing piece!
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>> Here's a proposal to address that (adding it to
>>>>>>>> Google Docs:
>>>>>>>> https://docs.google.com/document/d/1hijvM1WX9u2TOUdLEkFYVCofLeJlv2MRZqe-ncobJVw/edit
>>>>>>>> ):
>>>>>>>> >>>>>>>>>>>>>>>>>  - Per Role ZNode
>>>>>>>> >>>>>>>>>>>>>>>>>  - Every role's ZNode to hold configuration data
>>>>>>>> (this is the key addition that you're asking for, IIUC)
>>>>>>>> >>>>>>>>>>>>>>>>>  - Children of role ZNodes to be list of
>>>>>>>> ephemeral solr nodes
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>> We can iterate over this on the Google Docs
>>>>>>>> (internal representation ZK section) with inline commenting if we need 
>>>>>>>> to.
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>> Please let us know how that sounds.
>>>>>>>> >>>>>>>>>>>>>>>>> Regards,
>>>>>>>> >>>>>>>>>>>>>>>>> Ishan
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>> On Sun, Nov 21, 2021 at 4:49 AM Gus Heck <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>> It is difficult to track everything in this
>>>>>>>> thread for sure. Specifically, I don't feel my email of Wed, Nov 17, 
>>>>>>>> 7:43
>>>>>>>> PM (EST) has been addressed or responded to except for one difference 
>>>>>>>> of
>>>>>>>> opinion with Jan on whether or not we should prohibit the notion of any
>>>>>>>> role ever changing at runtime.
>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>> Note that I made a specific proposal for an
>>>>>>>> addition to the sip, regarding start up lifecycle and adherence to DRY 
>>>>>>>> via
>>>>>>>> zk, in the (probably not clearly expressed) hope that we can move to a
>>>>>>>> general overall application principle that at runtime config info 
>>>>>>>> should
>>>>>>>> come from zk. If we follow such a principle, we will always be in a
>>>>>>>> position to add dynamic features without significant rework, and all 
>>>>>>>> code
>>>>>>>> could hopefully reuse the same interaction patterns for consulting 
>>>>>>>> config
>>>>>>>> values.
>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>> Neither item is addressed in the SIP currently.
>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>> Also I had put that out there as a single item
>>>>>>>> so it could be focused on (simplifying the discussion I hope), and
>>>>>>>> depending on how discussion proceeds, I may have other follow on items.
>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>> -Gus
>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>> On Sat, Nov 20, 2021 at 8:45 AM Ishan
>>>>>>>> Chattopadhyaya <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>> On Fri, 19 Nov, 2021, 7:03 pm Ilan Ginzburg, <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> Is the request here for everybody to express
>>>>>>>> again the concerns
>>>>>>>> >>>>>>>>>>>>>>>>>>>> already expressed in this email thread and not
>>>>>>>> addressed?
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>> I think the expectation now (after we've
>>>>>>>> expressed our intention to reach a lazy consensus) is that if someone 
>>>>>>>> wants
>>>>>>>> to block this SIP from adoption, then to put forward the objections. 
>>>>>>>> Sort
>>>>>>>> of like a veto.
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> I suggest instead the authors review the
>>>>>>>> thread, match expressed
>>>>>>>> >>>>>>>>>>>>>>>>>>>> concerns with how the concern was addressed
>>>>>>>> (or not addressed) and
>>>>>>>> >>>>>>>>>>>>>>>>>>>> provide an exhaustive list.
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>> I've summarized most of the discussion in the
>>>>>>>> SIP document. If you feel I could do a better job with it, please help 
>>>>>>>> me
>>>>>>>> with areas of improvement.
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> This proposal in its current form (data and
>>>>>>>> overseer roles) doesn't
>>>>>>>> >>>>>>>>>>>>>>>>>>>> offer much that can't be reasonably achieved
>>>>>>>> by other means. I'd find
>>>>>>>> >>>>>>>>>>>>>>>>>>>> much more value in making sure what is done
>>>>>>>> now is a solid foundation
>>>>>>>> >>>>>>>>>>>>>>>>>>>> for the future.
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>> Fair enough, I understand your perspective.
>>>>>>>> Thanks for your feedback.
>>>>>>>> >>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> Ilan
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> On Thu, Nov 18, 2021 at 11:24 PM Noble Paul <
>>>>>>>> [email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >
>>>>>>>> >>>>>>>>>>>>>>>>>>>> > After so many back and forth mails, I just
>>>>>>>> can't say who has an outstanding concern and if they are already 
>>>>>>>> addressed
>>>>>>>> or not. I think the Google doc would help us get clarity on that. 
>>>>>>>> Please
>>>>>>>> take a moment to give your inputs
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >
>>>>>>>> >>>>>>>>>>>>>>>>>>>> > On Fri, Nov 19, 2021, 9:18 AM Ishan
>>>>>>>> Chattopadhyaya <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> Apologies, the vote hasn't passed formally
>>>>>>>> and I was under some confusion on the process.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> I'd like to proceed with a lazy consensus
>>>>>>>> and proceed to the implementation phase now.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> However, I would appreciate it if someone
>>>>>>>> wants to bring out any outstanding concerns about the SIP document.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> To facilitate in-line comments, here's a
>>>>>>>> temporary Google Docs version of this document.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>
>>>>>>>> https://docs.google.com/document/d/1hijvM1WX9u2TOUdLEkFYVCofLeJlv2MRZqe-ncobJVw/edit?usp=sharing
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> (I shall copy changes back to confluence
>>>>>>>> eventually)
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> Thanks and apologies again regarding the
>>>>>>>> confusion with the voting,
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> Regards,
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> Ishan
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >> On Thu, Nov 18, 2021 at 9:50 PM Ishan
>>>>>>>> Chattopadhyaya <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>> The SIP passed the voting phase. Thanks
>>>>>>>> for all for the feedback and insights.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>> Looking forward to your collaboration and
>>>>>>>> reviews as we implement this.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>> On Thu, Nov 18, 2021 at 9:42 PM Ishan
>>>>>>>> Chattopadhyaya <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>> > It's fine if we don't provide any
>>>>>>>> ability for runtime modification of roles at this time but I'm leery of
>>>>>>>> precluding it in the future.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>> In future, the necessity for such a
>>>>>>>> facility can dictate our course of action. We cannot lay down rules 
>>>>>>>> cast in
>>>>>>>> stone for functionality that we can't foresee yet.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>> On Thu, Nov 18, 2021 at 9:40 PM Ishan
>>>>>>>> Chattopadhyaya <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>> Thanks Jan, I added both those points to
>>>>>>>> the SIP document in the Notes section.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>> On Thu, Nov 18, 2021 at 7:18 PM Jan
>>>>>>>> Høydahl <[email protected]> wrote:
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> 18. nov. 2021 kl. 01:43 skrev Gus Heck <
>>>>>>>> [email protected]>:
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> 2) Roles will not be checked by loading
>>>>>>>> config from disk or caching disk config in memory. (zk ONLY source of 
>>>>>>>> truth)
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> It sounds a bit backward for a local
>>>>>>>> node to first parse solr.node.roles, determine its local set of roles, 
>>>>>>>> then
>>>>>>>> publish them to Zookeeper, and then read back its own roles from ZK.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> Code that only needs to determine "Do I
>>>>>>>> have the XXX role?" or find out "What roles do I have" should be able 
>>>>>>>> to
>>>>>>>> fetch the (static) roles from some roles utility class without 
>>>>>>>> consulting
>>>>>>>> ZK.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> Code that needs to check what nodes
>>>>>>>> have a certain role (such as placement) would obviously need ot 
>>>>>>>> consult ZK.
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> Perhaps the SIP should also state some
>>>>>>>> Non-goals or assertions such as
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> * Roles are static and immutable (also
>>>>>>>> in zk) for the entire life cycle of a node
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> I also think we should state that the
>>>>>>>> bar for adding new roles should be high so it is not abused as any 
>>>>>>>> other
>>>>>>>> tag or label for any tiny feature. It should be reserved for 
>>>>>>>> functionality
>>>>>>>> that may benefit from a dedicated set of nodes. That may be clear 
>>>>>>>> already,
>>>>>>>> but you never know...
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>> Jan
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> >>>>>>>>>>>>>>>>>>>> To unsubscribe, e-mail:
>>>>>>>> [email protected]
>>>>>>>> >>>>>>>>>>>>>>>>>>>> For additional commands, e-mail:
>>>>>>>> [email protected]
>>>>>>>> >>>>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>>>>> --
>>>>>>>> >>>>>>>>>>>>>>>>>> http://www.needhamsoftware.com (work)
>>>>>>>> >>>>>>>>>>>>>>>>>> http://www.the111shift.com (play)
>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>>>> --
>>>>>>>> >>>>>>>>>>>>>> http://www.needhamsoftware.com (work)
>>>>>>>> >>>>>>>>>>>>>> http://www.the111shift.com (play)
>>>>>>>> >>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>
>>>>>>>> >>>>>>>>>>>
>>>>>>>> >>>>>>>>>>> --
>>>>>>>> >>>>>>>>>>> http://www.needhamsoftware.com (work)
>>>>>>>> >>>>>>>>>>> http://www.the111shift.com (play)
>>>>>>>> >>>>>>>>>>
>>>>>>>> >>>>>>>>>>
>>>>>>>> >>>>>>>>>>
>>>>>>>> >>>>>>>>>> --
>>>>>>>> >>>>>>>>>> http://www.needhamsoftware.com (work)
>>>>>>>> >>>>>>>>>> http://www.the111shift.com (play)
>>>>>>>> >>>>
>>>>>>>> >>>>
>>>>>>>> >>>>
>>>>>>>> >>>> --
>>>>>>>> >>>> http://www.needhamsoftware.com (work)
>>>>>>>> >>>> http://www.the111shift.com (play)
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > --
>>>>>>>> > http://www.needhamsoftware.com (work)
>>>>>>>> > http://www.the111shift.com (play)
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> http://www.needhamsoftware.com (work)
>>>>>>> http://www.the111shift.com (play)
>>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> http://www.needhamsoftware.com (work)
>>>>> http://www.the111shift.com (play)
>>>>>
>>>>

Reply via email to