Solr
  1. Solr
  2. SOLR-3512

Create API for managing nodes within SolrCloud

    Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 4.0-ALPHA
    • Fix Version/s: None
    • Component/s: SolrCloud
    • Labels:
      None

      Description

      Currently there does not seem to be any "clean" way to remove a particular Solr node from a ZooKeeper collection running in SolrCloud. I watched the talk at Lucene Revolution 2012 about this area and it seems like the recommended approach at present is to just shut down the node. This is problematic for a couple reasons: one is that it creates a reliance on the ZK config (how soon will ZK know that the node is gone?) and creates a potentially bad user experience (how many queries will get sent to the node that was just shut down before the next tick elapses?). It also makes it impossible to use the node in an "offline" state – for example, if something went wrong on the box it might be good to look at a dump of the running process, etc. but if it's turned off we can't easily do that.

      Ideally there could be a series of core commands/primitives that one could issue to any Solr node to do things like remove a node from a ZK collection, re-connect to a ZK instance, a particular collection, etc. It might also be useful to be able to start up a Solr node without initially connecting to ZK.

      I looked at SOLR-3488 but that issue seems more related to managing collections within ZK, not so much about nodes within a particular collection. Apologies if these topics are covered there.

        Activity

        Hide
        Mark Miller added a comment -

        one is that it creates a reliance on the ZK config (how soon will ZK know that the node is gone?) and creates a potentially bad user experience (how many queries will get sent to the node that was just shut down before the next tick elapses?).

        I don't think this is a problem. You should be load balancing incoming requests - either with a solrj client or using load balancing software or hardware. Internal nodes do software load balancing themselves - so a node going down will not affect the user experience.

        It also makes it impossible to use the node in an "offline" state

        I've heard this before and I think it's a valid feature request. It would be nice to be able to pull a node out of rotation while keeping it running.

        Show
        Mark Miller added a comment - one is that it creates a reliance on the ZK config (how soon will ZK know that the node is gone?) and creates a potentially bad user experience (how many queries will get sent to the node that was just shut down before the next tick elapses?). I don't think this is a problem. You should be load balancing incoming requests - either with a solrj client or using load balancing software or hardware. Internal nodes do software load balancing themselves - so a node going down will not affect the user experience. It also makes it impossible to use the node in an "offline" state I've heard this before and I think it's a valid feature request. It would be nice to be able to pull a node out of rotation while keeping it running.

          People

          • Assignee:
            Mark Miller
            Reporter:
            Andy Laird
          • Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:

              Development