chapar icon indicating copy to clipboard operation
chapar copied to clipboard

Packet drop prevents clients from reading updates

Open pfons opened this issue 8 years ago • 1 comments

The implementation of Chapar is unable to handle packet drops because it currently assumes that the network layer is reliable. Unfortunately the UDP transport is not reliable and packet loss can occur.

This problem is particularly serious because a single packet dropped can prevent clients from reading all the subsequent updates made by clients on the source server.

For example, if the following execution occurs:

    Req 1: Client A: PUT key, “1”
<Req 1 is dropped>
    Req 2: Client A: PUT key2, “Request”

Because the message corresponding to request 1 was dropped and did not arrive at the other servers, client B will never be able to see the updated values of key2:

    Req 3: Client B: GET key2 -> “Request”   // This result is never returned

pfons avatar Apr 22 '16 03:04 pfons

Causal consistency has to prevent other nodes from viewing the new messages if a previous message is not seen or lost. However, we can always add additional mechanisms that periodically check with other nodes whether they have received certain messages or not.

MohsenLesani avatar Jul 04 '16 17:07 MohsenLesani