Commit graph

79 commits

Author SHA1 Message Date
Nicholas Kariniemi
412bf29f57 Close up client channels properly on disconnect 2014-10-25 22:15:43 +03:00
Nicholas Kariniemi
5ee40a6471 Use version numbers instead of timestamps
Also:
- Don't acknowledge changes sent from the server to the client.
- Only send one message at a time to the server.

All of these changes bring this more in line with the differential sync paper.
2014-10-25 19:31:14 +03:00
Nicholas Kariniemi
8fe22b9a52 Use timestamp tags instead of hashes
- Hashing was slow and we weren't using the hash properties much anyway
2014-10-21 23:25:42 +03:00
Nicholas Kariniemi
19ca650078 Fix tests - sync integration tests commented out 2014-10-19 11:49:02 +03:00
Nicholas Kariniemi
9591e9fd93 Rename state <--> sync namespaces 2014-10-19 10:53:14 +03:00
Nicholas Kariniemi
78d5617356 Keep state history with state in one atom 2014-10-15 22:14:32 +03:00
Nicholas Kariniemi
8dbb410667 Bounce favicon requests 2014-10-15 21:05:07 +03:00
Nicholas Kariniemi
f496fb51e5 Pull state history into state handler loop
- This is incidental complexity and other code doesn't need to know
  about it
2014-10-14 22:49:04 +03:00
Nicholas Kariniemi
7ada33bdfc Make server, client agent APIs more similar 2014-10-13 22:02:32 +03:00
Nicholas Kariniemi
b5a668e6ee Push state history into state handling 2014-10-13 21:54:52 +03:00
Nicholas Kariniemi
dffdc7cabb Remove init-server from state handling 2014-10-13 21:27:24 +03:00
Nicholas Kariniemi
5fd54b62e6 Make state syncing code more explicit 2014-10-12 23:15:40 +03:00
Nicholas Kariniemi
64b1bb05a7 Start client code like server side 2014-10-12 22:57:00 +03:00
Nicholas Kariniemi
73cf89f9d5 Move state handling atoms to global system var 2014-10-12 13:41:19 +03:00
Nicholas Kariniemi
7b3b509eaf Use Stuart Sierra reloaded workflow 2014-10-12 13:29:48 +03:00
Nicholas Kariniemi
8ef1522c1e Remove atoms from server,db so app can be reloaded 2014-10-12 12:56:57 +03:00
Nicholas Kariniemi
ec27d58e31 Drop compojure dependency
It was hardly used and makes control flow, reloaded workflow more difficult.
2014-10-12 12:25:15 +03:00
Nicholas Kariniemi
58373496f0 Use transit for communication for possible speed improvements 2014-10-10 22:48:39 +03:00
Nicholas Kariniemi
d6670f4157 Update React: 0.11.1 -> 0.11.2 2014-10-10 17:52:27 +03:00
Nicholas Kariniemi
e3eb2639cc Remove log statement 2014-10-06 20:17:00 +03:00
Nicholas Kariniemi
86bfdf80e4 Simplify MongoDB code by just storing whole state
- Every time it receives a state, it blows away the existing one and
  puts in the new one.
- There's a non-zero probability of losing the entire state if the
  server fails after blowing away the previous state and before
  inserting the new.
2014-10-05 00:12:09 +03:00
Nicholas Kariniemi
48ba2c5449 Possibly fully working (poorly tested) 2014-10-04 22:52:03 +03:00
Nicholas Kariniemi
d7708e1382 Move to shared state 2014-09-26 11:53:19 +03:00
Nicholas Kariniemi
e6b3c10396 Move state handling to shared code 2014-09-25 23:16:57 +03:00
Nicholas Kariniemi
39307f5a73 Test at "server agent" level 2014-09-25 23:14:26 +03:00
Nicholas Kariniemi
edab2ad684 Add sync test for single diff 2014-09-25 21:43:31 +03:00
Nicholas Kariniemi
3760fc8059 Possible changes - wip 2014-09-24 08:25:42 +03:00
Nicholas Kariniemi
31b6d40aef wip 2014-09-24 06:20:19 +03:00
Nicholas Kariniemi
f632fabdb2 Move message to shared 2014-09-23 19:52:47 +03:00
Nicholas Kariniemi
36a0e3d419 Move sync code to shared 2014-09-23 19:51:31 +03:00
Nicholas Kariniemi
dc355eb6ec Separate state handle, sync algorithm 2014-09-23 19:49:08 +03:00
Nicholas Kariniemi
1b8339dec0 Mid-changes: organize state changes 2014-09-22 22:47:36 +03:00
Nicholas Kariniemi
fe5bd00427 Refactor - wip 2014-09-16 23:27:10 +03:00
Nicholas Kariniemi
5a66361746 Rename sync -> diff 2014-09-14 21:30:19 +03:00
Nicholas Kariniemi
4320401a4e Better - uses tx-listen 2014-08-30 17:06:48 +03:00
Nicholas Kariniemi
f087309c0f Possibly fully working differential sync 2014-08-30 15:40:17 +03:00
Nicholas Kariniemi
a572b9e1eb Reset state from history
- fails if server changes are made while client is disconnected
2014-08-30 11:47:09 +03:00
Nicholas Kariniemi
763e6f2fc8 Sync complete state on checksum failure 2014-08-30 08:11:45 +03:00
Nicholas Kariniemi
bd08ea5ec5 Factor out some client/server common state ops 2014-08-30 07:21:59 +03:00
Nicholas Kariniemi
b7b094b253 Refactor wip 2014-08-19 23:24:19 +03:00
Nicholas Kariniemi
4ac42b0cf3 Working hash checks a la hasch 2014-08-13 21:37:17 +03:00
Nicholas Kariniemi
a672155a92 State checks - wip 2014-08-10 22:53:42 +03:00
Nicholas Kariniemi
becfb42627 Sync state using diffs instead of events 2014-08-10 20:55:26 +03:00
Nicholas Kariniemi
5230dc9601 Patch diff onto state 2014-08-09 16:03:06 +03:00
Nicholas Kariniemi
d775f1dab7 Diff two states 2014-08-09 15:37:39 +03:00
Nicholas Kariniemi
d018bcf3cf Remove recipes 2014-08-09 00:07:59 +03:00
Nicholas Kariniemi
8ecc7e9ad4 Delete individual grubs 2014-08-08 23:56:49 +03:00
Nicholas Kariniemi
680ca9ab8a Clean up deps 2014-08-03 10:18:49 +03:00
Nicholas Kariniemi
e79051f991 Update monger connect-via-uri call for lib changes 2014-08-03 00:33:45 +03:00
Nicholas Kariniemi
a7ac7665df Rework tests slightly 2014-08-02 23:54:02 +03:00