Improve the internal storage transaction interface to allow executing writes/deletes and 'c' oplog entries in the same transaction

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • None
    • 3
    • TBD
    • None
    • None
    • None
    • None
    • None
    • None

      Currently, the replica set's internal multi-document transaction machinery encounters challenges when attempting to combine write/delete operations and 'c' oplog entries within a single applyOps operation (i.e., under a single timestamp).

      This limitation became evident during the work on SERVER-99804. In that context, we updated the DDL commit to the shard catalog using writes to a local replicated collection, along with a 'c' oplog entry to instruct secondaries on how to update their in-memory cache state. That ticket aimed to commit all shard catalog modifications transactionally—combining writes and the 'c' oplog entry—under one timestamp using a single WriteUnitOfWork (WUOW) with kGroupForTransaction. Achieving this required implementing a specialized pathway for the newly introduced 'c' oplog entry within the batched write interface, ensuring that it was grouped with the insert/delete operations in a single applyOps call, without requiring a separate timestamp.

      Therefore, the goal of this ticket is to enhance the replica set's internal multi-document transaction interface to support a generalized pathway for 'c' oplog entries. This will enable them to be included alongside other insert/delete operations in a single applyOps call, without the need for custom logic for each individual 'c' oplog entry.

            Assignee:
            Unassigned
            Reporter:
            Pol Pinol
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: