Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-4586

Improved Bulk Write API

    • Type: Icon: Epic Epic
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • 5.3.0
    • Affects Version/s: None
    • Component/s: Bulk API
    • Hide
      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?
      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • Improved Bulk Write API
    • 4
    • 12
    • 15
    • 100
    • Hide

      Engineer(s): Slava

      2024-12-06: set end date to 2024-12-27

      • Last two weeks
        • Full synchronous API is completed
        • Outstanding sync-related TODOs have been resolved 
      • Next two weeks:
        • Slava picking up Reactive, Kotlin, Scala API implementations
      • Impediments:
        • N/A

      Engineer(s): Valentin

      2024-11-22: Set end date to 2024-12-06

      • Last two weeks
        • PR reviews and updates
      • Next two weeks:
        • Continue Bulk Write
      • Impediments:
        • Splitting PR review is taking much longer than anticipated

      2024-11-08: Set end date to 2024-11-22

      • Last two weeks
      1. Focused on CSOT fixes for bulk writes
      • Next two weeks:
      1. Finish Bulk Write
      • Impediments:
      1. CSOT fixes

      Engineer(s): Valentin

      2024-10-25: Set end date to 2024-11-08

      • Last two weeks
        • Focused on CSOT fixes for bulk writes
      • Next two weeks:
        • Return to bulk write
      • Impediments:
        • CSOT fixes

      Engineer(s): Valentin

      2024-10-10: Set end date to 2024-10-25

      • Last two weeks
        • Splitting in review w/ Prose tests
        • Fix logic for PartialResult with Isabel in review
      • Next two weeks:
        • Reactive Streams, Kotlin, Scala implementations
      • Impediments:
        • N/A

      Engineer(s): Valentin

      2024-09-27: Set end date to 2024-10-11

      • Last two weeks
        • Sync API merged
        • Implemented unified spec tests
      • Next two weeks:
        • Splitting in review w/ Prose tests
        • Reactive Streams, Kotlin, Scala implementations
      • Impediments:
        • Fix logic for PartialResult with Isabel

      Engineer(s): Valentin

      2024-09-13: Set end date to 2024-10-04

      • Last two weeks
        • API changes in review, addressing comments
        • Batch splitting
      • Next two weeks:
        • Batch splitting review
        • API and the non-splitting synchronous implementation are still in review
      • Impediments:
        • Bug in server selection test was identified and resolved around operation naming (operation is named clientBulkWrite not BulkWrite)

      Engineer(s): Valentin

      2024-08-30: Set end date to 2024-09-13

      • Last two weeks
        • Sync API
        • Implemented the prose tests that can pass with the current implementation
      • Next two weeks:
        • Batch splitting
        • API and the non-splitting synchronous implementation are still in review
      • Impediments:
        • Spec clarifications took some time to sort out

      Engineer(s): Valentin

      2024-08-16: No change to end date

      • Last two weeks
        • Sync API
        • Transactions and retries
      • Next two weeks:
        • Finish Sync API review
        • Implement unified spec tests
      • Impediments:
        • N/A

      Engineer(s): Valentin

      2024-08-02: Set end date to 2024-08-23

      • Last two weeks
        • Sync API in review
        • Handling transactions and retries in-progress
      • Next two weeks:
        • Encode ops and nsInfo parts of the bulkWrite command
        • Implement unified spec tests
      • Impediments:
        • N/A

      2024-07-23: Began implementation

      What was completed over the last two weeks?

      • Refined tickets and came up with approach to parallelize work
      • Began implementation

      Focus for next two weeks?

      • Complete sync API and core changes to allow multiple engineers to work on it
      Show
      Engineer(s): Slava 2024-12-06: set end date to 2024-12-27 Last two weeks Full synchronous API is completed Outstanding sync-related TODOs have been resolved  Next two weeks: Slava picking up Reactive, Kotlin, Scala API implementations Impediments: N/A Engineer(s): Valentin 2024-11-22: Set end date to 2024-12-06 Last two weeks PR reviews and updates Next two weeks: Continue Bulk Write Impediments: Splitting PR review is taking much longer than anticipated 2024-11-08: Set end date to 2024-11-22 Last two weeks Focused on CSOT fixes for bulk writes Next two weeks: Finish Bulk Write Impediments: CSOT fixes Engineer(s): Valentin 2024-10-25: Set end date to 2024-11-08 Last two weeks Focused on CSOT fixes for bulk writes Next two weeks: Return to bulk write Impediments: CSOT fixes Engineer(s): Valentin 2024-10-10: Set end date to 2024-10-25 Last two weeks Splitting in review w/ Prose tests Fix logic for PartialResult with Isabel in review Next two weeks: Reactive Streams, Kotlin, Scala implementations Impediments: N/A Engineer(s): Valentin 2024-09-27: Set end date to 2024-10-11 Last two weeks Sync API merged Implemented unified spec tests Next two weeks: Splitting in review w/ Prose tests Reactive Streams, Kotlin, Scala implementations Impediments: Fix logic for PartialResult with Isabel Engineer(s): Valentin 2024-09-13: Set end date to 2024-10-04 Last two weeks API changes in review, addressing comments Batch splitting Next two weeks: Batch splitting review API and the non-splitting synchronous implementation are still in review Impediments: Bug in server selection test was identified and resolved around operation naming (operation is named clientBulkWrite not BulkWrite ) Engineer(s): Valentin 2024-08-30: Set end date to 2024-09-13 Last two weeks Sync API Implemented the prose tests that can pass with the current implementation Next two weeks: Batch splitting API and the non-splitting synchronous implementation are still in review Impediments: Spec clarifications took some time to sort out Engineer(s): Valentin 2024-08-16: No change to end date Last two weeks Sync API Transactions and retries Next two weeks: Finish Sync API review Implement unified spec tests Impediments: N/A Engineer(s): Valentin 2024-08-02: Set end date to 2024-08-23 Last two weeks Sync API in review Handling transactions and retries in-progress Next two weeks: Encode ops  and  nsInfo  parts of the  bulkWrite  command Implement unified spec tests Impediments: N/A 2024-07-23: Began implementation What was completed over the last two weeks? Refined tickets and came up with approach to parallelize work Began implementation Focus for next two weeks? Complete sync API and core changes to allow multiple engineers to work on it
    • Hide

      DRIVERS-716:
      Summary of necessary driver changes

      • Implement the new bulk write API and tests defined in the specification.

      Commits for syncing spec/prose tests

      • Sync spec tests and implement prose tests from this commit.
        • 2024-08-28 include skips on serverless from 0984b09
        • 2024-08-29 include missing skip on serverless from e9f02f3
      • Sync the unacknowledged-client-bulkWrite command monitoring test files from this commit. The outdated version of this test in the commit from the previous bullet has a potential race.
      • See DRIVERS-2993 for a fix to unacknowledged write handling.

      Reference implementations

      Show
      DRIVERS-716 : Summary of necessary driver changes Implement the new bulk write API and tests defined in the specification . Commits for syncing spec/prose tests Sync spec tests and implement prose tests from this commit . 2024-08-28 include skips on serverless from  0984b09 2024-08-29 include missing skip on serverless from e9f02f3 Sync the unacknowledged-client-bulkWrite command monitoring test files from this commit . The outdated version of this test in the commit from the previous bullet has a potential race. See DRIVERS-2993 for a fix to unacknowledged write handling. Reference implementations Rust C

      This ticket was split from DRIVERS-716, please see that ticket for a detailed description.

            Assignee:
            valentin.kovalenko@mongodb.com Valentin Kavalenka
            Reporter:
            dbeng-pm-bot PM Bot
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              23 weeks, 3 days