Support QE with Client.bulkWrite

XMLWordPrintableJSON

    • Needed
    • Hide

      Summary of necessary driver changes

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

      Show
      Summary of necessary driver changes QE unified test support ( DRIVERS-3106 ) bulkWrite specific changes: don't error on QE bulkWrite. Implement batch splitting Commits for syncing spec/prose tests (and/or refer to an existing language POC if needed) Spec PR C driver PR
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CDRIVER-5780 In Code Review
      CXX-3145 Ready for Work
      CSHARP-5384 Ready for Work
      GODRIVER-3403 Backlog
      JAVA-5675 Backlog
      NODE-6479 Backlog
      MOTOR-1395 Duplicate
      PYTHON-4929 Needs Triage
      PHPC-2618 Blocked
      RUBY-3575 Needs Triage
      RUST-2078 Fixed 3.3.0
      PHPLIB-1712 Blocked
      $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-5780 In Code Review CXX-3145 Ready for Work CSHARP-5384 Ready for Work GODRIVER-3403 Backlog JAVA-5675 Backlog NODE-6479 Backlog MOTOR-1395 Duplicate PYTHON-4929 Needs Triage PHPC-2618 Blocked RUBY-3575 Needs Triage RUST-2078 Fixed 3.3.0 PHPLIB-1712 Blocked

      Summary

      Support and test Queryable Encryption (QE) with Client.bulkWrite.

      Motivation

      DRIVERS-716 adds driver API Client.bulkWrite for the bulkWrite command. MONGOCRYPT-588 adds support to libmongocrypt for processing the bulkWrite command.

      https://github.com/mongodb/libmongocrypt/pull/745 describes expected server limitations: CSFLE is not supported. Multiple namespaces are not supported. Due to these limitations, Client.bulkWrite with QE is not yet expected to outperform Collection.bulkWrite.

      Who is the affected end user?

      Users wanting to use the new Client.bulkWrite API with QE.

      How does this affect the end user?

      Without this change, users would be required to continue using Collection.bulkWrite to use QE with bulk writes. This may be an unexpected gap in functionality.

      How likely is it that this problem or use case will occur?

      Not sure.

      Is this issue urgent?

      I prefer this be done with DRIVERS-716 for completeness. The work in libmongocrypt is already done in MONGOCRYPT-588. But I expect this can be deferred without significant user impact.

      Is this ticket required by a downstream team?

      No?

      Is this ticket only for tests?

      No. Drivers will also need to upgrade to libmongocrypt 1.10.0, and support the new MONGOCRYPT_CTX_NEED_MONGO_COLLINFO_WITH_DB state.

      Acceptance Criteria

      Test QE works with Client.bulkWrite with the models: insertOne, updateOne, deleteOne, and deleteMany.

              Assignee:
              Adrian Dole
              Reporter:
              Kevin Albertson
              Kevin Albertson Kevin Albertson
              Esha Bhargava Esha Bhargava
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: