CASSANDRA-12126 addresses one correctness issue of Light Weight
Transactions. Unfortunately, the current patch developed by Sylvain and
Benedict requires an extra round trip between the coordinator and the
replicas for SERIAL and LOCAL_SERIAL reads.
After some experimentations, Benedict discovered that this extra round trip
could lead to a significant increase in timeouts for read-heavy workloads.

Users for which this behavior is a problem will be able to switch back to
the old behavior using a system property, therefore choosing performance
versus correctness.

On the side, Benedict has worked on another approach that does not suffer
from that performance problem and also addresses some LWT correctness
issues that can happen when adding or removing nodes. He initially intended
to deliver that improvement in 4.X but can try to incorporate it into 4.0.

Regarding CASSANDRA-12126 and 4.0 we are facing several options and
Benedict, Sylvain and I wanted to get the community feedback on them.

We can:

   1. Try to use Benedict proposal for 4.0 if the community has the
   appetite for it. The main issue there is some potential extra delay for 4.0
   2. Do nothing for 4.0. Meaning do not commit the current patch. We have
   lived a long time with that issue and we can probably wait a bit more for a
   proper solution.
   3. Commit the patch as such, fixing the correctness but introducing
   potentially some performance issue until we release a better solution.
   4. Changing the patch to default to the current behavior but allowing
   people to enable the new one if the correctness is a problem for them.

  Thanks in advance for your feedback.

Reply via email to