Commit graph

26 commits

Author SHA1 Message Date
Nicholas Kariniemi
4058d17102 Prove eventual consistency for n clients 2015-12-09 21:43:48 +02:00
Nicholas Kariniemi
2747dd066d CSP: Update implementation to allow for 3 clients 2015-12-09 18:46:28 +02:00
Nicholas Kariniemi
6bc934c647 CSP: Two way sync for an arbitrary n inputs from either client 2015-12-01 20:10:07 +02:00
Nicholas Kariniemi
7d37ea3cf0 CSP: Working two way sync specification + implementation 2015-12-01 19:43:10 +02:00
Nicholas Kariniemi
0ea9aab101 Two way sync assertion 2015-11-30 00:29:02 +02:00
Nicholas Kariniemi
20c408e491 Add two-way sync assertion and simplify down buffer
- Down buffer is no longer a sliding buffer of size one but just
 a buffer of size 1. It cannot be pushed into if it is full.
2015-11-29 23:28:48 +02:00
Nicholas Kariniemi
5cf41c6b21 Remove unnecessary render on client input 2015-11-29 23:28:04 +02:00
Nicholas Kariniemi
42afcc5b77 Extend one-way sync tests 2015-11-29 01:36:08 +02:00
Nicholas Kariniemi
e9c006281a Simplify algorithm: remove count, unused if statement 2015-11-29 01:16:44 +02:00
Nicholas Kariniemi
a003fc9db7 Working specification for a simple sync 2015-11-29 00:42:10 +02:00
Nicholas Kariniemi
cd7397ef40 CSP: Re-specification of sync algorithm with Datomic in mind
- This specification ignores the actual diffing/patching itself and
  concerns itself only with the current database, server, and client t
  or database time.
2015-11-26 22:09:33 +02:00
Nicholas Kariniemi
bde07221a6 More sync musings 2015-11-17 22:49:53 -05:00
Nicholas Kariniemi
432ee48162 Buffers - Add a client-side download buffer as well
--> No deadlock but state explosion. Not sure if syncing still works.
2015-08-26 22:22:34 +03:00
Nicholas Kariniemi
e47f79ac7b Buffers - wip2 2015-08-26 22:09:10 +03:00
Nicholas Kariniemi
52af4dfd68 Buffers - wip 2015-08-26 21:35:22 +03:00
Nicholas Kariniemi
619f21e4d8 CSP: Introduce a one element sliding buffer when DB changes are saved
This fixes a deadlock issue from the previous model.
2015-08-24 18:40:01 +03:00
Nicholas Kariniemi
b3b8011719 CSP: Fix issue over which events can be communicated when 2015-08-19 20:50:08 +03:00
Nicholas Kariniemi
0cebe1f5ab Fix deadlock in previous implementation
by only allowing new inputs if the previous one has been "acked".

I.e. if you send one diff, you don't process any more diffs until you
	receive a diff back. This is something specified in the Neil Frasier
	paper and also something needed to prevent deadlock.
2015-08-15 18:32:25 +03:00
Nicholas Kariniemi
9f32a03d04 Force processes to synchronize on communication
Use parallel operation || instead of the (unsynchronized) interleave
	operation |||.
2015-08-15 18:18:04 +03:00
Nicholas Kariniemi
1b99e49563 Add identifiers to events 2015-08-15 16:51:25 +03:00
Nicholas Kariniemi
da0541518e Send unsent client changes to server 2015-08-15 16:38:20 +03:00
Nicholas Kariniemi
cd94b6a966 More complicated - loads but untested 2015-08-15 15:14:27 +03:00
Nicholas Kariniemi
14a8c340e0 More complicated model with multiple server/client pairs - wip 2015-08-15 14:58:59 +03:00
Nicholas Kariniemi
30bbfff308 More nuance - send back diff 2015-08-13 22:41:30 +03:00
Nicholas Kariniemi
bdc78589ea Slight improvement 2015-08-13 22:25:18 +03:00
Nicholas Kariniemi
2736769825 Basic CSP "sync" - some working CSPM 2015-08-13 21:58:03 +03:00