> As the repair is only guaranteed for a majority of replicas, I assume I can discover somewhere which replicas are up to date like this?
I’m not quite sure what you mean. Do you mean which nodes have participated in a paxos repair? This information isn’t maintained, but anyway would not imply the node is up to date. A node participating in a paxos repair ensures _a majority of other nodes_ are up-to-date with _its_ knowledge, give or take. By performing this on a majority of nodes, we ensure a majority of replicas has a lower bound on the knowledge of a majority, and we effectively invalidate any in-progress operations on any minority that did not participate. > Do I understand correctly, that if I take a backup from such a replica, it is guaranteed to contain the full state up to a certain timestamp t? No, you would need to also perform regular repair afterwards. If you perform a regular repair, by default it will now be preceded by a paxos repair (which is typically very quick), so this will in fact hold, but paxos repair won’t enforce it. > Does the replica also end up with a complete and continuous log of all writes until t? If not, does a merge of all logs in the majority contain a complete log? A majority. There is also no log that gets replicated for LWTs in Cassandra. There is only ever at most one transaction that is in flight (and that may complete) and whose result has not been persisted to some majority, for any key. Paxos repair + repair means the result of the implied log are replicated to all participants. From: Henrik Ingo <henrik.i...@datastax.com> Date: Saturday, 4 December 2021 at 23:12 To: dev@cassandra.apache.org <dev@cassandra.apache.org> Subject: Paxos repairs in CEP-14 Could someone elaborate on this section **** *Paxos Repair* We will introduce a new repair mechanism, that can be run with or without regular repair. This mechanism will: - Track, per-replica, transactions that have been witnessed as initiated but have not been seen to complete - For a majority of replicas complete (either by invalidating, completing, or witnessing something newer) all operations they have witnessed as incomplete prior to the intiation of repair - Globally invalidate all promises issued prior to the most recent paxos repair **** Specific questions: Assuming a table only using these LWT:s * As the repair is only guaranteed for a majority of replicas, I assume I can discover somewhere which replicas are up to date like this? * Do I understand correctly, that if I take a backup from such a replica, it is guaranteed to contain the full state up to a certain timestamp t? (And in addition may or may not contain mutations higher than t, which of course could overwrite the value the same key had at t.) * Does the replica also end up with a complete and continuous log of all writes until t? If not, does a merge of all logs in the majority contain a complete log? In particular, I'm trying to parse the significance of "or witnessing something newer"? (Use case for this last question could be point in time restore, aka continuous backup, or also streaming writes to a downstream system.) henrik -- Henrik Ingo +358 40 569 7354 <358405697354> [image: Visit us online.] <https://www.datastax.com/> [image: Visit us on Twitter.] <https://twitter.com/DataStaxEng> [image: Visit us on YouTube.] <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_channel_UCqA6zOSMpQ55vvguq4Y0jAg&d=DwMFaQ&c=adz96Xi0w1RHqtPMowiL2g&r=IFj3MdIKYLLXIUhYdUGB0cTzTlxyCb7_VUmICBaYilU&m=bmIfaie9O3fWJAu6lESvWj3HajV4VFwgwgVuKmxKZmE&s=16sY48_kvIb7sRQORknZrr3V8iLTfemFKbMVNZhdwgw&e=> [image: Visit my LinkedIn profile.] <https://www.linkedin.com/in/heingo/>