orbitdb/docs/versionclocks.json
2016-03-03 15:24:28 +01:00

150 lines
4.3 KiB
JSON

// Data set grouped and sorted
"A" : [
{ "id": "A", "seq": 0, "ver": 0, "prev": null},
{ "id": "A", "seq": 0, "ver": 1, "prev": "A0.0"},
{ "id": "A", "seq": 0, "ver": 2, "prev": "A0.1"},
{ "id": "A", "seq": 0, "ver": 3, "prev": "A0.2"},
{ "id": "A", "seq": 0, "ver": 4, "prev": "A0.3"},
{ "id": "A", "seq": 2, "ver": 0, "prev": ["A0.4", "B1.1"]}
],
"B" : [
{ "id": "B", "seq": 1, "ver": 0, "prev": ["A0.4", "C0.2"]},
{ "id": "B", "seq": 1, "ver": 1, "prev": "B1.0"}
],
"C" : [
{ "id": "C", "seq": 0, "ver": 0, "prev": null},
{ "id": "C", "seq": 0, "ver": 1, "prev": "C0.0"},
{ "id": "C", "seq": 0, "ver": 2, "prev": "C0.1"},
{ "id": "C", "seq": 3, "ver": 0, "prev": ["C0.2", "A2.0]"]}
]
A B C
|
0.0
|
0.1
|
0.2 0.0
| |
0.3 0.1
| |
0.4 0.2
| \ / |
| 1.0 |
| | |
| 1.1 |
| / |
2.0 |
\ |
\ |
\ |
3.0
// expected order A
{ "id": "A", "seq": 0, "ver": 0, "prev": null},
{ "id": "A", "seq": 0, "ver": 1, "prev": "A0.0"},
{ "id": "A", "seq": 0, "ver": 2, "prev": "A0.1"},
{ "id": "A", "seq": 0, "ver": 3, "prev": "A0.2"},
{ "id": "A", "seq": 0, "ver": 4, "prev": "A0.3"},
{ "id": "C", "seq": 0, "ver": 0, "prev": null},
{ "id": "C", "seq": 0, "ver": 1, "prev": "C0.0"},
{ "id": "C", "seq": 0, "ver": 2, "prev": "C0.1"},
{ "id": "B", "seq": 1, "ver": 0, "prev": ["A0.4", "C0.2"]},
{ "id": "B", "seq": 1, "ver": 1, "prev": "B1.0"}
{ "id": "A", "seq": 2, "ver": 0, "prev": ["A0.4", "B1.1"]}
{ "id": "C", "seq": 3, "ver": 0, "prev": ["C0.2", "A2.0]"]}
"VersionClock": {
"seq": 0,
"ver": 0
}
"Item": {
"id": "",
"VersionClock": "<VersionClock>",
"prev": []
}
"List": {
"items": ["<Item>"]
}
A B C
0.0
|
0.0 0.1
| |
0.1 0.2
\ / |
1.0 |
| |
1.1 |
/ |
2.0 |
\ |
\ |
\ |
3.0
// Sequence, --> syncs to
listA.add("mango") // { "id": "A", "seq": 0, "ver": 0, "prev": null}
listA.add("banana") // { "id": "A", "seq": 0, "ver": 1, "prev": "A.0.0"}
--> B
// A
// { "id": "A", "seq": 0, "ver": 0, "prev": null}
// { "id": "A", "seq": 0, "ver": 1, "prev": "A.0.0"}
listC.add("apple") // { "id": "C", "seq": 0, "ver": 0, "prev": null}
listC.add("strawberry") // { "id": "C", "seq": 0, "ver": 1, "prev": "C.0.0"}
listC.add("orange") // { "id": "C", "seq": 0, "ver": 2, "prev": "C.0.1"}
--> A,B
// A
// { "id": "A", "seq": 0, "ver": 0, "prev": null}
// { "id": "A", "seq": 0, "ver": 1, "prev": "A.0.0"}
// { "id": "C", "seq": 0, "ver": 0, "prev": null}
// { "id": "C", "seq": 0, "ver": 1, "prev": "C.0.0"}
// { "id": "C", "seq": 0, "ver": 2, "prev": "C.0.1"}
listB.add("pineapple") // { "id": "B", "seq": 1, "ver": 0, "prev": ["A.0.1", "C.0.2"]}
listB.add("papaya") // { "id": "B", "seq": 1, "ver": 1, "prev": "B.1.0"}
--> A
// A
// { "id": "A", "seq": 0, "ver": 0, "prev": null}
// { "id": "A", "seq": 0, "ver": 1, "prev": "A.0.0"}
// { "id": "C", "seq": 0, "ver": 0, "prev": null}
// { "id": "C", "seq": 0, "ver": 1, "prev": "C.0.0"}
// { "id": "C", "seq": 0, "ver": 2, "prev": "C.0.1"}
// { "id": "B", "seq": 1, "ver": 0, "prev": ["A.0.1", "C.0.2"]}
// { "id": "B", "seq": 1, "ver": 1, "prev": "B.1.0"}
listA.add("kiwi") // { "id": "A", "seq": 2, "ver": 0, "prev": ["A.0.1", "B1.1", "C0.2"]}
--> C
// A
// { "id": "A", "seq": 0, "ver": 0, "prev": null}
// { "id": "A", "seq": 0, "ver": 1, "prev": "A.0.0"}
// { "id": "C", "seq": 0, "ver": 0, "prev": null}
// { "id": "C", "seq": 0, "ver": 1, "prev": "C.0.0"}
// { "id": "C", "seq": 0, "ver": 2, "prev": "C.0.1"}
// { "id": "B", "seq": 1, "ver": 0, "prev": ["A.0.0", "C.0.2"]}
// { "id": "B", "seq": 1, "ver": 1, "prev": "B.1.0"}
// { "id": "A", "seq": 2, "ver": 0, "prev": ["A.0.1", "B1.1", "C0.2"]}
listC.add("blueberry") // { "id": "C", "seq": 3, "ver": 0, "prev": ["A.2.0", "C.0.2"]}
--> A,B
// A
// { "id": "A", "seq": 0, "ver": 0, "prev": null}
// { "id": "A", "seq": 0, "ver": 1, "prev": "A.0.0"}
// { "id": "C", "seq": 0, "ver": 0, "prev": null}
// { "id": "C", "seq": 0, "ver": 1, "prev": "C.0.0"}
// { "id": "C", "seq": 0, "ver": 2, "prev": "C.0.1"}
// { "id": "B", "seq": 1, "ver": 0, "prev": ["A.0.0", "C.0.2"]}
// { "id": "B", "seq": 1, "ver": 1, "prev": "B.1.0"}
// { "id": "A", "seq": 2, "ver": 0, "prev": ["A.0.1", "B1.1", "C0.2"]}
// { "id": "C", "seq": 3, "ver": 0, "prev": ["A.2.0", "C.0.2"]}