Hi,

I have been using lightweight transactions for several months now and
wondering what is the benefit of having LOCAL_SERIAL serial consistency level.

With SERIAL, it achieves global linearlizability,
but with LOCAL_SERIAL, it only achieves DC-local linearlizability,
which is missing point of linearlizability, I think.

So, for example,
once when SERIAL is used,
we can't use LOCAL_SERIAL to achieve local linearlizability
since data in local DC might not be updated yet to meet quorum.
And vice versa,
once when LOCAL_SERIAL is used,
we can't use SERIAL to achieve global linearlizability
since data is not globally updated yet to meet quorum .

So, it would be great if we can use LOCAL_SERIAL if possible and
use SERIAL only if local DC is down or unavailable,
but based on the example above, I think it is not possible, is it ?
So, I am not sure about what is the good use case for LOCAL_SERIAL.

The only case that I can think of is having a cluster in one DC for
online transactions and
having another cluster in another DC for analytics purpose.
In this case, I think there is no big point of using SERIAL since data
for analytics sometimes doesn't have to be very correct/fresh and
data can be asynchronously replicated to analytics node. (so using
LOCAL_SERIAL for one DC makes sense.)

Could anyone give me some thoughts about it ?

Thanks,
Hiro

Reply via email to