Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-45031

Rename "ClientWrite" RaftMongo.tla action

    • Type: Icon: Improvement Improvement
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Replication
    • Labels:
      None
    • Replication

      The "ClientWrite" action in the RaftMongo.tla spec is meant to represent a client executing a write operation on the leader. However, in the course of SERVER-43589 it has gradually taken on a different meaning: it now represents a primary making a new oplog entry visible.

      This change occurred because a) it's appropriate to include all oplog entries in traces, not just those originating from client write operations, and b) the moment when the oplog entry becomes visible on the primary is the closest approximation to the behavior of the ClientWrite action.

      Other moments have ordering issues: if we logged the entry before it was visible, there might be open holes behind it in the oplog which would later be filled with entries. This would cause execution traces that violate the spec, since the spec does not model oplog holes. If we logged the entry after it was visible, a secondary might replicate the entry and reveal it in a log line before the primary did.

      Keep the behavior of this action, but rename it. Perhaps NewOplogEntries.

            Assignee:
            backlog-server-repl [DO NOT USE] Backlog - Replication Team
            Reporter:
            jesse@mongodb.com A. Jesse Jiryu Davis
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: