Commit Graph

125 Commits

Author SHA1 Message Date
~hatteb-mitlyd
f97058f0b8 more profiling detritus
Conflicts:
	v/raft.c
2014-05-30 11:42:49 -07:00
~hatteb-mitlyd
b23c701c2a more profiling detritus 2014-05-30 11:09:47 -07:00
~hatteb-mitlyd
3566984894 crappy punk-perf 2014-05-29 12:19:55 -07:00
~hatteb-mitlyd
3e869096b8 Merge remote-tracking branch 'urbit/master' into newbreach
Conflicts:
	urb/urbit.pill

Generate new pill.
2014-05-09 13:26:22 -07:00
~hatteb-mitlyd
4c967b2d60 avoid use-after-free in raft.c 2014-05-09 12:39:14 -07:00
Steve Dee
fab6bcdd80 Remove crya 2014-05-08 17:13:25 -07:00
Steve Dee
c9a4cf19cf 64-bit entry numbers 2014-04-08 09:25:49 -07:00
~hatteb-mitlyd
a0c18f56b2 change to asserting malloc 2014-04-01 17:48:26 -07:00
Steve Dee
fd3c03fa73 Options cleanup
Remove sow, pas, and rez. Add comments with flags and short
descriptions. Also correctly bound ports.
2014-03-31 07:46:54 -07:00
Steve Dee
8703249546 Ignore revo from prior terms 2014-03-14 11:02:46 -07:00
Steve Dee
607c83d683 Various fixes and cleanups 2014-03-14 11:02:45 -07:00
Steve Dee
079c4f7696 Remove useless assert... 2014-03-12 11:54:14 -07:00
Steve Dee
b71e6f161d Remove old fprintf 2014-03-12 11:52:11 -07:00
Steve Dee
27ec17b711 TODOs 2014-03-12 11:35:30 -07:00
Steve Dee
c56cfccc7d Bail instead of exit 2014-03-12 11:35:30 -07:00
Steve Dee
e787049b65 Clean up timer logic 2014-03-12 11:35:29 -07:00
Steve Dee
1627b6e78c More intelligently load from sist 2014-03-12 11:35:26 -07:00
Steve Dee
399530d379 Use same election timeout always
In particular, we wait at least 150ms after starting up before declaring
an election, to give the old leader a chance to send us a heartbeat.
2014-03-10 16:25:48 -07:00
Steve Dee
f4f1c711d5 New event log format including term and type 2014-03-10 16:14:21 -07:00
Steve Dee
6a3a939c4a Fix for duplicate vote responses 2014-03-10 12:18:18 -07:00
Steve Dee
ad70fa2380 Check for null vog_c 2014-03-10 11:52:49 -07:00
Steve Dee
a5b23546a6 Bump votes on restore 2014-03-07 19:25:03 -08:00
Steve Dee
139c46dd63 Fix revo logic 2014-03-07 19:16:08 -08:00
Steve Dee
be218d4f8a More aggressive reconnecting 2014-03-07 19:12:27 -08:00
Steve Dee
c5bb5bb5e7 Moronic key-value store
This is kind of dumb, but we need to persist stuff for Raft, and
we can't touch noun state from followers.
2014-03-07 19:12:27 -08:00
Steve Dee
8aa97708f4 Fix a stupid in c3_log_every 2014-03-07 19:12:21 -08:00
Steve Dee
1786c0a048 Cleanup 2014-03-07 16:47:30 -08:00
Steve Dee
7371ba09fc Fix a segfault on startup :( 2014-03-07 16:46:46 -08:00
Steve Dee
551f28b594 Log on bump to candidate 2014-03-07 16:26:15 -08:00
Steve Dee
f92eaf970c Clean up Raft options and init
I opted to keep u2_opts to just numbers, strings, and beans for now and
parse them to peer names in the Raft init code.
2014-03-07 16:19:38 -08:00
Steve Dee
e43b99af67 Log killed connections 2014-03-07 13:24:33 -08:00
Steve Dee
3cda85ddc1 Longer heartbeat log interval 2014-03-07 12:26:34 -08:00
Steve Dee
71e67e7e9b Fix long line 2014-03-07 12:17:08 -08:00
Steven Dee
8ef45612dd Unsigned format specifiers 2014-03-07 20:01:09 +00:00
Steve Dee
3383de7938 Comments 2014-03-07 20:01:04 +00:00
Steve Dee
1e10cd5d95 Clean up connections
The code seems much less racy now.
2014-03-07 20:00:44 +00:00
Steven Dee
22ca1dfdf0 Rejigger connection killing 2014-03-07 20:00:44 +00:00
Steven Dee
53fafd25fd update -> note, and call it 2014-03-07 20:00:44 +00:00
Steven Dee
7c7c044525 Add ron_u->liv
This prevents us from double-killing connections in races, e.g. the
one between _raft_rest_name and _raft_connect_cb.
2014-03-07 20:00:44 +00:00
Steven Dee
e5a11b5aa0 Minor fixes and cleanup 2014-03-06 10:18:36 -08:00
Steve Dee
27e45b8c48 Fewer TODOs 2014-03-06 08:59:21 -08:00
Steve Dee
cc345da3e4 Clean up and dedup message writing 2014-03-06 08:59:21 -08:00
Steve Dee
9e2f12fb80 Leader election appears to work 2014-03-06 08:59:20 -08:00
Steve Dee
2e0f7df85c Duplex connections 2014-03-06 08:59:20 -08:00
Steve Dee
66fedab1fe Raft message sending working 2014-03-06 08:59:20 -08:00
Steve Dee
1ea754ef88 Some TODOs 2014-03-06 08:59:20 -08:00
Steve Dee
008558a1f7 WIP hand-rolled parsing, read side 2014-03-06 08:59:20 -08:00
Steve Dee
85c3cf4f5e Use uv_ip4_addr 2014-03-06 08:59:20 -08:00
Steve Dee
cc096a99af Comment log lines 2014-03-06 08:59:20 -08:00
Steve Dee
f17f0add72 More sanity checking and cleanup 2014-03-06 08:59:20 -08:00
Steve Dee
af91e4a2c1 WIP more work 2014-03-06 08:59:20 -08:00
Steve Dee
d045f31f23 Rejigger the event loop again 2014-03-06 08:59:20 -08:00
Steve Dee
3f7e6d5e94 More work 2014-03-06 08:59:20 -08:00
Steve Dee
abc5d4fb0d More work 2014-03-06 08:59:19 -08:00
Steve Dee
5507162089 Comments 2014-03-06 08:59:19 -08:00
Steve Dee
424af0354d WIP Raft network base 2014-03-06 08:59:19 -08:00
C. Guy Yarvin
16dd948e7d Attempted fix to an intermittent sync event bug. 2014-02-27 10:33:20 -08:00
Steve Dee
edc28b9ba7 Get new event loop working with checkpoints
Modifying u2_reck is a bad idea in the face of checkpoints. Just stick
everything on roe. This actually cleans up the logic a bit -- we can
execute non-core-modifying actions immediately, rather than on the next
tick.
2014-02-25 12:18:18 -08:00
Steve Dee
d7e4c46150 Revert "Revert "Merge remote-tracking branch 'urbit/master' into master""
This reverts commit dc6f72fa0a8ff2097b1e9c900ebec444c0d4c24f.
2014-02-25 12:18:07 -08:00
Steve Dee
de5048e895 Revert "Merge remote-tracking branch 'urbit/master' into master"
This reverts commit d52d2835b96f89e7ebbe5392c99f1483d165ee0b, reversing
changes made to 58838ea246e52c064719edc56e29b6a1ba713fdf.

Conflicts:
	Makefile
2014-02-24 11:27:57 -08:00
Steve Dee
284811c92b Assert single-instance mode on push 2014-02-24 10:31:38 -08:00
Steve Dee
242e888c2c Get entry number from raft data structure directly 2014-02-24 10:17:26 -08:00
Steve Dee
575f28cef0 Commit on next libuv cycle in single-instance mode 2014-02-19 13:57:17 -08:00
Steve Dee
2fc0ccf2d1 Fix event playback 2014-02-19 11:51:44 -08:00
Steve Dee
a957cd649e WIP cleanup and fixes 2014-02-18 16:48:46 -08:00
Steve Dee
e0e37cc569 Splinter disk persistence and reck stuff back out 2014-02-17 18:21:24 -08:00
Steve Dee
704dfd6d85 Write term and log type, in preparation for raft 2014-02-17 17:56:42 -08:00
Steve Dee
6182bd7d14 New event loop working, super rough cut 2014-02-14 15:15:38 -08:00
Steve Dee
27b50018a4 More loop -> raft, add u2_raft_boot 2014-02-12 17:27:09 -08:00
Steve Dee
2d5f78e39a WIP Move lug_u to u2_raft 2014-02-12 11:50:24 -08:00
Steve Dee
5db81ccab7 Trivial fixups 2014-02-12 11:50:05 -08:00
Steve Dee
0ccaadd10b WIP raft single instance
Shove all our disk stuff crudely into raft.c.
2014-02-11 17:14:25 -08:00
Steve Dee
580a7323f4 WIP Make _lo_work rafty
Carts are now batches of events waiting to be or just recently
persisted. _lo_work calls u2_reck_kick on the last batch of events,
removes every batch that's been through Raft, and then prepares the next
batch.

TODO make _lo_punk et al stick things on roe

TODO move disk persistence to raft.c

TODO raft_push: lo_open / mark / lo_shut
2014-02-11 12:57:41 -08:00
Steve Dee
5a16660af1 Skeleton for raft 2014-02-10 16:07:09 -08:00
Steve Dee
6df5fb3155 New-style raft options 2014-02-05 15:25:57 -08:00