Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-55558

Better Support for Rolling Index Builds

    • Type: Icon: New Feature New Feature
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • None
    • Storage Execution

      More and more, when faced with needing to do index build/rebuilds on a production system, we advise customers to do a rolling build, where you take each secondary down, load it standalone, do the work, bring it back into the replset, let lag catch up, repeat on another server.

       

      My idea would be to make this process easier, but building a mongod command which would address the span of doing builds on a single node. The rough process would be:

      • Queue a list of indexing tasks
      • Fail/Delay if replset would become unelectable.
      • Stand down, if primary
      • Mark as Hidden, or restart in standalone mode (not sure which is best)
      • Do the builds
      • Rejoin normal replset status

       

      Motivation: the current process of restarting the node in standalone mode is extremely cumbersome, especially if one's deploying in Kubernetes or other such places, where doing one off configuration changes are an extra load.  Additionally, some environments lock down their configs for security purposes.

      The easier we make it for people to do things in the correct fashion, the more likely they will do it correctly.

       

      A full rolling build would still require some external agent to trigger each node in sequence, and then wait for repl lag to catch up between each, but this would mean a DBA could affect the process with three commands, and staring at some graphs.

            Assignee:
            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            Reporter:
            rod.adams@mongodb.com Rod Adams
            Votes:
            0 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated: