Hi Xiaolei, By definition:
Write.ONE: Ensure that the write has been written to at least 1 node's commit log and memory table before responding to the client. So it is not a bug as long as the data gets to A. If you want to be sure data gets to B and/or C, use Write.QUORUM or Write.ALL (and large enough replication factor). Cheers, -Jaakko On Sat, Dec 19, 2009 at 4:03 PM, XL.Pan <[email protected]> wrote: > Hi, I'm reading the codes of the system. When I read the method > StorageProxy::insertBlocking(), I get puzzled. Is it possible that the data > may still be lost even if the insertion call returns ok? > > Imagin the fowllowing scene : > 1) client sends data to serverA with conistency ONE; > 2) serverA selects 3 endpoint A, B, C to store the data; > 3) After the serverA successfully stores the data locally, the serverA will > tell the client that it's ok. > 4) serverA is crashed after that; > 5) Because the data sent to B and C through the network may be buffered (user > leve/kernel level), it may not be received by B or C yet. > 6) As a result, it will be impossible for any one to get the data though the > client's insertion is ok. > > -------------- > XL.Pan > 2009-12-19 > >
