[SERVER-27545] Include RBID in replSet metadata of command replies Created: 29/Dec/16  Updated: 06/Dec/22  Resolved: 27/Nov/17

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

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

Issue Links:
Related
related to SERVER-27403 Consider term and rbid when validatin... Closed
related to SERVER-27534 All writing operations must fail if t... Closed
related to SERVER-27543 Create new metadata for oplog queries Closed
Assigned Teams:
Replication
Backwards Compatibility: Fully Compatible
Participants:

 Description   

We often need to do a sequence of requests against a node that may be invalidated if the node rolls back. We use the RBID for this and are planning on expanding its use in SERVER-27403. This gets simpler and requires fewer round-trips if each reply includes the RBID.

The main open question is whether to include the RBID from before the operation begins processing or after it completes and produces the rest of the results.

  • Including the "before" rbid makes it possible to later say "these results haven't been rolled back if the rbid is the same."
  • Including the "after" rbid makes it possible to say "if this rbid matches one you got before, you know nothing has rolled back yet"
  • Including both lets you say both things
  • We could also report one rbid and require that it not change while processing a single request. We would then error all requests when a rollback happens. This is related to SERVER-27534.

We may want to include this in 3.6 even if we don't add any code that reads it. This would allow us to start using it in 3.8 without any mixed-version compatibility/fallback code.



 Comments   
Comment by Judah Schvimer [ 20/Jan/17 ]

We need to figure out how to handle RBID detection during rollback.

Comment by Judah Schvimer [ 11/Jan/17 ]

This will be partially addressed by SERVER-27543. After it is completed we can discuss if more work needs to be done.

Generated at Thu Feb 08 04:15:27 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.