Hi, reply inline below On Mon, Jun 26, 2023 at 06:39:09PM +0200, Jakub Zytka wrote: > Hello, > > I want to discuss the possibilities of fixing CASSANDRA-18591 and > CASSANDRA-18589 (~exceptions during reads), considering that TCM will > become a reality soon. > While both issues can be hit even on a single-node cluster, I think it's > important for the solution to be at least TCM-friendly and easily > extendable in the future. > ...
> > Finally, let's consider the role of Transactional Cluster Metadata (TCM). > With TCM, distinguishing and handling some of the aforementioned scenarios > may become easier or even feasible. However, my familiarity with TCM > internals and future plans is limited. Therefore, I would greatly > appreciate any insights into the relationship between TCM and scenarios > such as the ones I've described above. With TCM a schema change bumps an epoch, this epoch is then serialized with every read command/partition update and the replica can check if it is behind or ahead of the coordinator. This allows the replica to either catch up with the coordinator before executing the read/write or fail the request if the coordinator is behind. There are still a few races though, for example, the new schema is set on the node before the new epoch is committed, so we might send a read/write to a replica using the new schema but with the old epoch. Fixing this would require us to rewrite the way we manage schemas and is currently out of scope, but TCM would allow us to do so in the future. /Marcus