Mercurial > code > home > repos > light9
comparison doc/rdfdb-sync @ 1040:b65995e32a23
old notes on rdfdb
Ignore-this: 8ded8d40583cf75e8d2420a81df4f76c
author | Drew Perttula <drewp@bigasterisk.com> |
---|---|
date | Tue, 27 May 2014 07:34:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1039:3335de84e3fe | 1040:b65995e32a23 |
---|---|
1 http://neil.fraser.name/writing/sync/ | |
2 | |
3 | |
4 file persistence could be just another client with deliberate huge | |
5 latency to save on disk writes? | |
6 | |
7 | |
8 ------------------ | |
9 server master | |
10 | |
11 per-client shadow | |
12 | |
13 | |
14 | |
15 client shadow | |
16 | |
17 client master | |
18 ------------------ | |
19 | |
20 | |
21 client edits write to clientmaster. client also reads from there. | |
22 When the last update is done, | |
23 | |
24 | |
25 | |
26 | |
27 graph: (s1 p1 o1) | |
28 | |
29 client1 writes a loose patch: del (s1 p1 *), add (s1 p1 o2) | |
30 | |
31 client2 gets in another loose patch first: del (s1 p1 *), add (s1 p1 o3) | |
32 | |
33 on the server, we make an invertible patch: del (s1 p1 o1), add (s1 p1 o2) | |
34 | |
35 then another invertible patch: del (s1 p1 o2), add (s1 p1 o3) | |
36 | |
37 some clients need this patch: del (s1 p1 o1), add (s1 p1 o3) | |
38 client1 needs this patch: del (s1 p1 o1), add (s1 p1 o2) | |
39 | |
40 | |
41 --------- | |
42 | |
43 graph: () | |
44 | |
45 client1 writes a patch: add (s1, p1, o1) | |
46 client2 writes a patch: add (s1, p1, o1) | |
47 | |
48 on the server, client2's patch is rewritten to no-op. | |
49 |