cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Long Quanzheng <prc...@gmail.com>
Subject Error returned that means unknown
Date Fri, 26 Apr 2019 19:04:56 GMT
Hi

We found that Cassandra can return timeout error but the actual operation
succeeded.
https://github.com/gocql/gocql/blob/master/conn.go#L1441

Is there a way to know all those kind of errors?

Here is the background why we need this:
We are using two phase commit:
1) append data to tableA
2) execute LWT on tableB
3) So if 2) fails we need to clean up the data written into tableA.
Otherwise we lost data.

Previously we always clean up  in 3) if we got any error from 2), which is
wrong for ErrorTimeoutNoReponse. This error simply means the result is
unknown. So we should whitelist this error. But we don't know what are the
other errors that should also be whitelisted.

*Alternative:*
What we can also do is instead of whitelisting, we do backlisting. We only
clean up in 3) for certain error that we know that 2) doesn't succeed. But
from the gocql code, I don't know how to find all of them. If we don't
clean up correctly in those case, we may leak some data that will never be
deleted.

Thanks

Mime
View raw message