|
Exploration and POC is complete. Summary of findings:
- for a basic workload of one writer doing serial w:majority writes, this enhancement could result in a speedup of 15-20%
- no sys-perf tests actually show an improvement, but one test does show a regression: the YCSB test that does 50% updates and 50% reads. This particular test only uses 1 thread, so there is something interesting about the interaction of mixed reads and updates done at w:majority that causes a slowdown. The 95%/5% equivalent test does not show a regression, and when I hacked the test to do 100% updates, an improvement was seen (similar to my one-off basic workload test in the above bullet.)
- For the actual work for this project, the tricky parts will be the edge cases of using the oplog truncate point as a primary, as there are a bunch of places in rollback and startup that assume this situation cannot occur. This may mean that upgrade/downgrade will be non-trivial.
|
|
The topology coordinator simply uses the node's knowledge of all nodes' last known durable timestamp to calculate a new commit point; it doesn't treat itself specially. (The recalculation of the commit point is triggered by any change in the map of nodes to durable timestamp.) So I don't think any changes would be necessary there.
|
|
Maybe we have a confusion about terminology here, but the point of this project is to replicate oplog entries before their durable on the primary, right? That means that the secondaries might make those writes durable and thus make them majority committed before they're durable on the primary. Since the primary reports the majority commit point, you'd need to change how it computes that optime to include the possibility of the majority commit point being ahead of the primary's own durable point.
|
|
I don't follow – how can secondaries have data that is past the primary's visibility point?
|
|
The challenge here is that the primary would need to consider that visibility point when deciding how far to advance the majority commit point. You'd want it to let two secondaries who had confirmed past the primary's visibility point to cause the primary to advance the majority point as well.
|
Generated at Thu Feb 08 04:46:46 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.