Closed leftjs closed 5 years ago
like siblings in riak, Do u think that Anna need this feature when I want to use in Anna in production?
Hi @leftjs -- thanks for your question. We haven't explicitly made any efforts to overcome clocks being unsynchronized across servers. CRDTs do not do any work to automatically resolve these gaps. Whether that feature is something you need or not depends on the requirements of your application, but we imagine that it's something some applications will indeed need.
This is related to #12 -- we have a variety of other, non-last writer wins lattice implementations that aren't currently exposed to the user. If this is something you are interested in working on, we'd be happy to work with you!
@leftjs and in addition to Vikram's comment, one of the main features of Anna is its coordination-freeness, and synchronizing the clocks between servers requires coordination. So if your application does have such a requirement, currently you will need to enforce it at the application level.
tks for ur replies
Hi, Riselab's researchers: I see ur
rc_pair_lattice.cpp
lattice merge function andgenerate_timestamp
function in urcommon.hpp
, I see u just use max timestamp to decide whether needing replace current obj, eg. if a key have n replicas across several servers, one of them has been updated by a new value, but because of time gaps between these servers, maybe updated values's timestamp less than timestamps in other replicas, how can I decide to use which one in the future ? so I have these question as follow:CRDT
can resolve time gaps between several servers ?Dotted Version Vectors
orVector Clock
asConflict Resolution
? it's necessary ?