Read Repair in cassandra

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Read Repair in cassandra

ankit tyagi
Hi All,

I have a doubt regarding read repair while reading data. I and  using QUORUM for both read and write operations with RF 3 for strong consistency

suppose while write data node1 and node2 replicate the data but it doesn't get replicate on node3 because of various factors. coordinator node will save hinted handoff for node3.

now read request comes, if at the time node2 gets down, so data will be served from node1 and node3. node3 may return older data as hinted handoff may not be run from coordinator nofr. 

In that case read request will fail as only 1 node has the latest data or latest data will get returned from node1 and read repair request will be fired for node3?
 
Reply | Threaded
Open this post in threaded view
|

RE: Read Repair in cassandra

Jan Karlsson

The request would return with the latest data.

 

The read request would fire against node 1 and node 3. The coordinator would get answers from both and would merge the answers and return the latest.

 

Then read repair might run to update node 3.

 

QUORUM does not take into consideration whether an answer is the latest or not. It just makes sure a QUORUM of nodes reply.

 

From: ankit tyagi [mailto:[hidden email]]
Sent: April 08, 2015 6:37 AM
To: [hidden email]
Subject: Read Repair in cassandra

 

Hi All,

 

I have a doubt regarding read repair while reading data. I and  using QUORUM for both read and write operations with RF 3 for strong consistency

 

suppose while write data node1 and node2 replicate the data but it doesn't get replicate on node3 because of various factors. coordinator node will save hinted handoff for node3.

 

now read request comes, if at the time node2 gets down, so data will be served from node1 and node3. node3 may return older data as hinted handoff may not be run from coordinator nofr. 

 

In that case read request will fail as only 1 node has the latest data or latest data will get returned from node1 and read repair request will be fired for node3?