Nicholas Kariniemi
bc5921b2dc
CSP: Clean up syntax of simpler model
2015-12-18 10:51:37 +02:00
Nicholas Kariniemi
4da9e8a617
Support more than one grub list
...
- Connecting to / redirects to /<random string>
- Connecting to /:list-name connects users to the list
:list-name. Changes are synced only with this list.
- A cookie saves the last list visited, so future / visits go to last list
2015-12-17 00:40:51 +02:00
Nicholas Kariniemi
81f4a47d84
Catch all errors in clicking in e2e test
2015-12-11 16:35:50 +02:00
Nicholas Kariniemi
958b6cc5a4
Add note about running tests
2015-12-11 14:48:55 +02:00
Nicholas Kariniemi
9901792fe8
CSP: Correct spec to actually test for n processes (not 3)
2015-12-11 14:48:20 +02:00
Nicholas Kariniemi
2613f91510
Add lein midje as an explicit dev dependency
2015-12-11 10:47:08 +02:00
Nicholas Kariniemi
f30ee7ce49
Make Datomic setup instructions more explicit
2015-12-11 10:24:42 +02:00
Nicholas Kariniemi
2f96bb51db
Make datomic script more generic
2015-12-11 10:24:37 +02:00
Nicholas Kariniemi
43bc50b3ae
Remove unused specljs file
2015-12-11 10:07:51 +02:00
Nicholas Kariniemi
f8d10e70a5
Add script for starting Datomic locally
2015-12-11 10:07:37 +02:00
Nicholas Kariniemi
7513ed471e
Add end-to-end test for production (with manual verification)
2015-12-11 00:08:04 +02:00
Nicholas Kariniemi
53bbaff30c
Move CSP spec from csp/ to spec/
2015-12-10 23:38:40 +02:00
Nicholas Kariniemi
4d0d92b188
Remove websocket logging
2015-12-10 23:38:15 +02:00
Nicholas Kariniemi
df09addaa4
Remove unused dependencies
2015-12-10 23:37:29 +02:00
Nicholas Kariniemi
928baf1439
Separate server and command line options
2015-12-10 23:31:19 +02:00
Nicholas Kariniemi
b31489b2b8
Working n-way client sync with Datomic
...
- Based on latest CSP specification
- Also added end-to-end test for eventual consistency
2015-12-10 23:31:19 +02:00
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
798f1a5891
Working sync for single client (no changes from others)
2015-11-20 02:14:07 -05:00
Nicholas Kariniemi
a8d8ae56c5
Rework sync - client reworked, wip
2015-11-19 23:33:30 -05:00
Nicholas Kariniemi
838e6497d4
Correct fetching of database values
...
The existing way did not work for local database for some reason. The
existing approach tried to fetch all attributes for a given
entity. We now specifically fetch the attributes we want for an
entity, which is better anyway.
2015-11-17 23:01:18 -05:00
Nicholas Kariniemi
bde07221a6
More sync musings
2015-11-17 22:49:53 -05:00
Nicholas Kariniemi
fac9486787
Add Datomic to README and clean up
2015-11-17 20:38:46 -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
Nicholas Kariniemi
cec0060984
db - wip
2015-08-10 06:45:09 +03:00
Nicholas Kariniemi
d71f9260e8
Rework sync - also actually remove removed items
2015-07-17 00:36:12 +03:00
Nicholas Kariniemi
755d06f32b
Rework sync - wip
...
- Fetch full sync state from database, save upsert changes to database
2015-07-17 00:25:24 +03:00
Nicholas Kariniemi
8b11c119f2
Separate server and client syncing
...
- They vary in important ways anyway so it's more clear this way
2015-07-15 10:39:29 +03:00