Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-1492

Clustered indexes for Time-series collections

    • Type: Icon: Epic Epic
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • Labels:
    • Needed
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-3898 Won't Do
      CXX-2189 Won't Do
      CSHARP-3401 Won't Do
      GODRIVER-1872 Won't Do
      JAVA-3998 Won't Do
      NODE-3096 Won't Do
      MOTOR-670 Duplicate
      PYTHON-2558 Won't Do
      PHPC-1767 Won't Do
      RUBY-2530 Won't Do
      RUST-667 Won't Do
      SWIFT-1109 Won't Do
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-3898 Won't Do CXX-2189 Won't Do CSHARP-3401 Won't Do GODRIVER-1872 Won't Do JAVA-3998 Won't Do NODE-3096 Won't Do MOTOR-670 Duplicate PYTHON-2558 Won't Do PHPC-1767 Won't Do RUBY-2530 Won't Do RUST-667 Won't Do SWIFT-1109 Won't Do

      Downstream Change Summary

      There may be downstream impacts for this project. We will update with potential impacts after we move to design.

      Description of Linked Ticket

      Epic Summary

      Make the RecordStore for a collection a mapping from _id key to BSON document, instead of a mapping from RecordId to BSON document. This will then allow us to remove the separate _id index.

      Motivation

      • Queries that currently use the _id index will only need to do one read instead of two.
      • Inserts and deletes also have one less index to update.
      • Range queries on _id will be able to use a collection scan rather than index scan with fetch stage. This allows for far more efficient sequential storage access where random order access is required now.
      • Range removes on _id allow for efficient truncations that avoid reading data to be removed if there are no other indexes.
      • Significantly speed up chunk migrations on sharded clusters.
      • Improve usability of MongoDB for timeseries data.

      Doing a smaller internal-only project first, that leaves full support for sharded collections with shard keys other than _id as future work, helps evaluating performance gains before committing to implementing the more expensive future work, and allows answering design questions for that work.

            Assignee:
            Unassigned Unassigned
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: