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

Interface for time-series bucket access through user namespace

    • Needed
    • Hide

      Before this project, it was possible to access timeseries data in the compressed format (buckets) by directly performing read/write on the bucket collection (<db>.system.buckets.<coll>).

      This is not possible anymore. In fact, the bucket collection does not exist anymore. Instead, to access timeseries data in the compressed format (buckets) the CRUD operations must target the main timeseries user namespace and pass the "rawData: true" parameter.

      E.g.:
      db.runCommand(

      {find: 'coll', rawData: true}

      )

      Show
      Before this project, it was possible to access timeseries data in the compressed format (buckets) by directly performing read/write on the bucket collection (<db>.system.buckets.<coll>). This is not possible anymore. In fact, the bucket collection does not exist anymore. Instead, to access timeseries data in the compressed format (buckets) the CRUD operations must target the main timeseries user namespace and pass the "rawData: true" parameter. E.g.: db.runCommand( {find: 'coll', rawData: true} )
    • Hide

      Summary of necessary driver changes

      •  

      Commits for syncing spec/prose tests
      (and/or refer to an existing language POC if needed)

      •  

      Context for other referenced/linked tickets

      •  
      Show
      Summary of necessary driver changes   Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed)   Context for other referenced/linked tickets  
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-5955 Won't Fix
      CXX-3258 Won't Fix
      CSHARP-5546 Won't Fix
      GODRIVER-3522 Needs Triage
      JAVA-5830 Won't Fix
      NODE-6883 Backlog
      MOTOR-1447 Won't Fix
      PYTHON-5247 Won't Fix
      PHPLIB-1655 Won't Fix
      RUBY-3639 Won't Fix
      RUST-2189 Won't Fix
      $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 */ } #scriptField td.willNotDo { background-color: #FF0000; /* Red color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-5955 Won't Fix CXX-3258 Won't Fix CSHARP-5546 Won't Fix GODRIVER-3522 Needs Triage JAVA-5830 Won't Fix NODE-6883 Backlog MOTOR-1447 Won't Fix PYTHON-5247 Won't Fix PHPLIB-1655 Won't Fix RUBY-3639 Won't Fix RUST-2189 Won't Fix

      Original Downstream Change Summary

      Before this project, it was possible to access timeseries data in the compressed format (buckets) by directly performing read/write on the bucket collection (<db>.system.buckets.<coll>).

      This is not possible anymore. In fact, the bucket collection does not exist anymore. Instead, to access timeseries data in the compressed format (buckets) the CRUD operations must target the main timeseries user namespace and pass the "rawData: true" parameter.

      E.g.:

      db.runCommand({find: 'coll', rawData: true}) 
      

      Description of Linked Ticket

      Epic Summary

      Summary

      Implement "raw access" mode for CRUD commands, which bypasses any logical translation steps. For standard collections, this will be a noop. For time-series collections, it allows operations to function on the bucket-level data while accessing the primary namespace (not system.buckets). This will allow tooling such as mongodump to access the correct data format without knowing the collection type.

      Motivation

      This small project will be a preparatory step for SPM-3830 (Eliminate Dual-Namespaces for Time Series Collections) to ease the transition to using a single namespace for time-series collections.

      Documentation

      Product Description
      Scope
      Technical Design
      Docs Update

            Assignee:
            Unassigned Unassigned
            Reporter:
            tom.selander@mongodb.com Tom Selander
            Andreas Braun Andreas Braun
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated: