Conflict-free replicated data type explained

Some more info on CRDT’s as mentioned in the latest dev-update.

Wikipedia:

YouTube infoQ-channel:

17 Likes

That’s a good video - long on the demos and short on the theory. I understand CRDT a lot better now.

6 Likes
7 Likes

Excellent, thank you.

2 Likes

I’m curious if vector clocks and LWW are planned to be incorporated in the MaidSafe adaptations. From a superficial view it would seem that these become problematic in a situation where nodes could meddle and lie.

2 Likes

Top of my head answer is that to do that you would need to control a majority within a section - and that is (almost) impossible. And if you could get a maority in a section there is worse badness you could get up to.

Or do I misunderstand?

1 Like

Unsure, I haven’t spent enough time on this yet, just my initial (superficial) impressions leaking through. In the examples shown, nodes use a vector clock as an easy means to determine causality. If they lie about the state of the vector clock, then perhaps they could affect the replicated data?

2 Likes

Sure but would a majority of the section not have to lie about the state of the vector clock?

I’d say it depends on the implementation, hence my curiosity about what MS will ship.

1 Like

We will pore over the implementation details :slight_smile:

Yes, well version vectors really (we refer to these as Dots) The key is to force incremental updates (1 at a time) so the pressure is on the initiator to ensure replicas (elders) get those clock + 1 counts applied in order. This is a part of at2 thinking as well as bft-crdt (crate coming soon).

In terms of LWW or whatever business logic then it is a business logic decision. With our current impl we have not required to impl LWW of FWW etc. as we are forcing incremental changes.

7 Likes

excellent! 20 chars.

2 Likes
8 Likes