Interval-Tree-Clocks icon indicating copy to clipboard operation
Interval-Tree-Clocks copied to clipboard

crdt that use itc?

Open benoitc opened this issue 8 years ago • 3 comments

are you aware of any crdt that has been tested with itc?

benoitc avatar Mar 30 '17 11:03 benoitc

No, I don't think ITC used with any current CRDT design. Not really sure if it's suitable for CRDT's, but to better answer that, more research would be necessary on this topic.

ricardobcl avatar Apr 03 '17 14:04 ricardobcl

i missed to answer. i’m thinking it should be possible to have at least a convergent algo until you keep enough siblings but still thinkg loudly

benoitc avatar Dec 12 '17 21:12 benoitc

Thinking out loud: the thing with ITC is that it's easy to fork, but how do you do reclaim (i.e., join()) part of the ID space when the other node dies or doesn't respond? You could have a timeout upon which you assume that the other node is dead and you reclaim that ID space. But what if the other node was not dead and does the same thing and comes back online. Then both share ID space and may have incremented the same space. This is undefined behaviour and probably will result in some error/data loss.

In practice, and depending on your system, you could probably be "OK" with assuming that a node is dead after X amount of time, but it's a hack more that anything, similar to when Riak removed entries in the Version Vector if bigger than 10(?) entries.

I'm not saying that there isn't potential for CRDTs here, but someone has to research it more thoroughly.

On the topic of reclaiming causal metadata or minimizing it's usage over time, there's also the research I did on Node-wide Dot-based Clocks implemented in DottedDB. (PS: I still have to update the readme and some other things on that project.)

ricardobcl avatar Dec 15 '17 12:12 ricardobcl