• Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Networking & Observability
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      As part of the lock-free serverStatus effort (SPM-4755), slow serverStatus sections contribute to FTDC gaps when collection exceeds 1 second. Analysis in SERVER-124926 and the slow serverStatus spreadsheet shows that the changeStreamPreImages section is a significant contributor. The spreadsheet data was collected from live Atlas clusters.

      Owning team

      Suggested owner (from CODEOWNERS): Query Execution Change Streams (@10gen/query-execution-change-streams)

      Impact (from slow serverStatus logs)

      • Tab: union (mongod + mongos)
      • Total duration share: 2.4% of slow-run section time
      • Avg duration when slow: 142 ms
      • Rows where section exceeded 1s: 1.5% of slow runs

      Code location

      • Section registration: ServerStatusSectionBuilder<ChangeStreamPreImagesServerStatus>("changeStreamPreImages")
      • Primary file: src/mongo/db/stats/change_stream_preimages_server_status.cpp

      Task

      Please audit the changeStreamPreImages serverStatus section and remove any unnecessary blocking work (locks, synchronous I/O, contended atomics, etc.).

      Use SKUNK-40 branch for reference implementations and SKUNK-40-nonblocking for nonblocking annotations.

      Acceptance criteria

      • changeStreamPreImages section generation does not acquire blocking locks on the hot path
      • No regression in section output for FTDC/default serverStatus collection
      • Add or update tests if behavior changes

      Related work

            Assignee:
            Unassigned
            Reporter:
            Daniel Gomez Ferro
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: