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

Reply via email to