Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • All nodes join live_nodes, as is the case today
  • ZK structure for roles:
      • /node_roles
        • overseer
          • preferred 
            • nodes
              •  solr1_8983 (ephemeral node)
              [zdata: {"mode": "preferred"}]
              •  
              •  solr2_8983 (ephemeral node)
              [zdata: {"mode": "preferred"}] solr3
          • allowed
            • nodes
              •  solr3_8983 (ephemeral node)
          • disallowed
            • nodes
              • solr4_8983 (ephemeral node)
              • solr5_8983 (ephemeral node)
              • solrcoord1_8983 (ephemeral node)
              [zdata: {"mode": "preferred"}]
        • data
          • on 
            • nodes
              •  solr4_8983 (ephemeral node)
              [zdata: {"mode": "on"}] solr5
              •  
              •  solr5_8983 (ephemeral node) 
          • off
            • nodes
              • solr1_8983 (ephemeral node)
              [zdata: {"mode": "on"}]
              • solr2
               solr6
              • _8983 (ephemeral node)
              [zdata: {"mode": "on"}]
              • solr3
               solr7
              • _8983 (ephemeral node)
              [zdata: {"mode": "on"}]...
              • solrcoord1_8983 (ephemeral node)
        • coordinator (example of a future role)
          • on
            • nodes
              • solrcoord1_8983 (ephemeral node)
          • off
            • nodes
              • solr1_8983 (ephemeral node)
              • solr2_8983 (ephemeral node)
              • solr3_8983 (ephemeral node)
              • solr4_8983 (ephemeral node)
              [zdata: {"mode": "on"}]...
              • solr5_8983 (ephemeral node)

Roles During Application Lifecycle:

...

  • Do you have a new functionality or existing functionality that you want the users to be able to turn on/off on certain nodes, esp from the point of view of functional (role based) isolation of nodes? Yes: good candidate, No: you might not need a separate role
  • Do you want the functionality associated with the role to be turned on for any user (not already using roles functionality) upgrading to this new Solr version (without having to explicitly turn it on)?
    • Yes: Change the current default value for "solr.node.roles" from "data:on,overseer:allowed" to "data:on,overseer:allowed,myrole:on"
    • No: Either don't change the default of "solr.node.roles" or change it from "data:on,overseer:allowed" to "data:on,overseer:allowed,myrole:off"
  • How to tell users who are already using some roles on their nodes on how to turn on this functionality?
    • In upgrade notes and/or in ref guide, instruct the users with language similar to this: "If you're already explicitly using roles (i.e. you are using "solr.node.roles" for your nodes), then you should append ",myrole:on" to all nodes where you wish to enable this functionality (introduced by myrole)"
  • Designate one of the modes as a defaultIfAbsent. Most likely that's going to be "off" or "disallowed" etc.. This affects only those nodes where some roles are explicitly or implicitly configured, but this new role is not present.

...