Mercurial > code > home > repos > light9
changeset 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 | 3335de84e3fe |
children | a4632a7b2e17 |
files | doc/rdfdb-sync |
diffstat | 1 files changed, 49 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/rdfdb-sync Tue May 27 07:34:58 2014 +0000 @@ -0,0 +1,49 @@ +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. +