[SERVER-45031] Rename "ClientWrite" RaftMongo.tla action Created: 09/Dec/19  Updated: 06/Dec/22  Resolved: 13/Jan/20

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: A. Jesse Jiryu Davis Assignee: Backlog - Replication Team
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Replication
Participants:

 Description   

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.



 Comments   
Comment by A. Jesse Jiryu Davis [ 13/Jan/20 ]

We've decided to stop implementation and write the paper describing how far we got.

Generated at Thu Feb 08 05:07:40 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.