Files
@ 38c1e8c18215
Branch filter:
Location: light9/doc/rdfdb-sync - annotation
38c1e8c18215
943 B
text/plain
rdfdb 0.20.0
Ignore-this: be378ce908baa1fcb0f8bfd9ea400114
Ignore-this: be378ce908baa1fcb0f8bfd9ea400114
b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 b65995e32a23 | http://neil.fraser.name/writing/sync/
file persistence could be just another client with deliberate huge
latency to save on disk writes?
------------------
server master
per-client shadow
client shadow
client master
------------------
client edits write to clientmaster. client also reads from there.
When the last update is done,
graph: (s1 p1 o1)
client1 writes a loose patch: del (s1 p1 *), add (s1 p1 o2)
client2 gets in another loose patch first: del (s1 p1 *), add (s1 p1 o3)
on the server, we make an invertible patch: del (s1 p1 o1), add (s1 p1 o2)
then another invertible patch: del (s1 p1 o2), add (s1 p1 o3)
some clients need this patch: del (s1 p1 o1), add (s1 p1 o3)
client1 needs this patch: del (s1 p1 o1), add (s1 p1 o2)
---------
graph: ()
client1 writes a patch: add (s1, p1, o1)
client2 writes a patch: add (s1, p1, o1)
on the server, client2's patch is rewritten to no-op.
|