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

Allow index builds on secondaries with a "force" option.

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

      Even after SERVER-2771 gets sorted out, it would be good to have better support for rolling out new indexes one replica set member at a time: since index builds, whether foreground or background, impact performance on the node, anybody who is doing slaveOk queries will probably be unhappy if all their secondaries are slow down all at the same time, typically for a long duration.

      So maybe createIndex could have a force option analogous to compact's, that would make the index get built even if the node is a secondary (and I think, when a node that gets a force instruction is secondary, not registering the index build in the oplog). This way, people could more conveniently deploy their indexes one node at a time without requiring the restart-without-replSet option that's needed today.

      (Presumably, while building indexes this way, a secondary should go into recovering mode and/or do whatever else a secondary does during compact to arrange things so that clients don't route reads to it.)

            backlog-server-execution [DO NOT USE] Backlog - Storage Execution Team
            richard.kreuter Richard Kreuter (Inactive)
            1 Vote for this issue
            6 Start watching this issue