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

Support QE with Client.bulkWrite

    • Needed
    • 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-5780 Blocked
      CXX-3145 Blocked
      CSHARP-5384 Blocked
      GODRIVER-3403 Blocked
      JAVA-5675 Blocked
      NODE-6479 Blocked
      MOTOR-1395 Blocked
      PYTHON-4929 Blocked
      PHPLIB-1572 Blocked
      RUBY-3575 Blocked
      RUST-2078 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 */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CDRIVER-5780 Blocked CXX-3145 Blocked CSHARP-5384 Blocked GODRIVER-3403 Blocked JAVA-5675 Blocked NODE-6479 Blocked MOTOR-1395 Blocked PYTHON-4929 Blocked PHPLIB-1572 Blocked RUBY-3575 Blocked RUST-2078 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@mongodb.com Adrian Dole
            Reporter:
            kevin.albertson@mongodb.com Kevin Albertson
            Kevin Albertson Kevin Albertson
            Esha Bhargava Esha Bhargava
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: