incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niklas Ekström <nik...@ekstrom.com>
Subject Possible issue with read repair?
Date Wed, 10 Oct 2012 20:17:48 GMT
Hi,

I’m looking in the file StorageProxy.java (Cassandra 1.1.5), and line 766 seems odd to me.

FBUtilities.waitOnFutures() is called with the repairResults from the RowRepairResolver resolver.

The problem though is that repairResults is only assigned when the object is created at line
737 in StorageProxy.java, and there it is assigned to Collections.emptyList(), and in the
resolve() method in RowRepairResolver, which is indirectly called from line 771 in StorageProxy.java,
that is, after the call to FBUtilities.waitOnFutures().

So the effect is that line 766 in StorageProxy.java is essentially a no-op.

If on the other hand line 766 is moved down to just below the try-catch block under it (to
line 777), the effect of the call to FBUtilities.waitOnFutures() would be to wait for responses
to the READ_REPAIR message. Not waiting for responses to read repair messages opens a window
of time in which stale reads can happen.

Does this sound reasonable or am I overlooking something?

Regards,
Niklas

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message