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

concurrent index create requested per database or per table

    • Type: Icon: New Feature New Feature
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Index Maintenance
    • Labels:

      Docs state that foreground index build locks the database. This makes sense for mmapv1. It shouldn't be required for WiredTiger & RocksDB. I hope we can support concurrent foreground index build in a database or even on one collection.

      One use case is database reload where a common practice is to load the table with only a PK index, then with one scan of the table do (possibly external) sorts for each of the secondary indexes, then finish each sort and write the secondary index with minimal fragmentation.

      Database reload where the secondary index has already been declared can bog down in the read-modify-write IO required for btrees, like WiredTiger.

      http://docs.mongodb.org/manual/reference/method/db.collection.createIndex/#db.collection.createIndex
      http://docs.mongodb.org/manual/faq/concurrency/
      http://docs.mongodb.org/manual/tutorial/build-indexes-in-the-background/
      http://docs.mongodb.org/manual/core/index-creation/

            Assignee:
            louis.williams@mongodb.com Louis Williams
            Reporter:
            mdcallag Mark Callaghan
            Votes:
            2 Vote for this issue
            Watchers:
            17 Start watching this issue

              Created:
              Updated:
              Resolved: