This commit is contained in:
Steve Dee 2014-02-27 16:35:50 -08:00 committed by Steven Dee
parent 424af0354d
commit 5507162089

View File

@ -53,6 +53,8 @@ _raft_readname(u2_ropt* rop_u, const c3_c* str_c, c3_w siz_w)
} }
} }
/* u2_raft_readopt(): parse a string into a list of raft peers.
*/
u2_bean u2_bean
u2_raft_readopt(u2_ropt* rop_u, const c3_c* arg_c) u2_raft_readopt(u2_ropt* rop_u, const c3_c* arg_c)
{ {
@ -83,6 +85,8 @@ _raft_election_rand()
return ((float) rand() / RAND_MAX) * 150; return ((float) rand() / RAND_MAX) * 150;
} }
/* _raft_do_rest(): act on an incoming raft RPC request.
*/
static void static void
_raft_do_rest(u2_rcon* ron_u, struct Raft_Rest res_u) _raft_do_rest(u2_rcon* ron_u, struct Raft_Rest res_u)
{ {
@ -114,6 +118,8 @@ _raft_do_rest(u2_rcon* ron_u, struct Raft_Rest res_u)
/* TODO */ /* TODO */
} }
/* _raft_do_rasp(): act on an incoming raft RPC response.
*/
static void static void
_raft_do_rasp(u2_rcon* ron_u, struct Raft_Rasp ras_u) _raft_do_rasp(u2_rcon* ron_u, struct Raft_Rasp ras_u)
{ {
@ -126,6 +132,8 @@ _raft_do_rasp(u2_rcon* ron_u, struct Raft_Rasp ras_u)
} }
} }
/* _raft_conn_work(): read and write requests and responses.
*/
static void static void
_raft_conn_work(u2_rcon* ron_u) _raft_conn_work(u2_rcon* ron_u)
{ {
@ -167,6 +175,8 @@ _raft_conn_work(u2_rcon* ron_u)
} }
/* _raft_conn_read_cb(): generic connection read callback.
*/
static void static void
_raft_conn_read_cb(uv_stream_t* tcp_u, _raft_conn_read_cb(uv_stream_t* tcp_u,
ssize_t siz_i, ssize_t siz_i,
@ -199,6 +209,8 @@ _raft_conn_read_cb(uv_stream_t* tcp_u,
u2_lo_shut(u2_no); u2_lo_shut(u2_no);
} }
/* _raft_conn_new(): allocate a new raft connection.
*/
static void static void
_raft_conn_new(u2_raft* raf_u) _raft_conn_new(u2_raft* raf_u)
{ {
@ -231,6 +243,8 @@ _raft_conn_new(u2_raft* raf_u)
} }
} }
/* _raft_remove_run(): remove a connection from the list of unknowns.
*/
static void static void
_raft_remove_run(u2_rcon* ron_u) _raft_remove_run(u2_rcon* ron_u)
{ {
@ -252,6 +266,8 @@ _raft_remove_run(u2_rcon* ron_u)
} }
} }
/* _raft_conn_free(): unlink a connection and free its resources.
*/
static void static void
_raft_conn_free(uv_handle_t* had_u) _raft_conn_free(uv_handle_t* had_u)
{ {
@ -269,6 +285,8 @@ _raft_conn_free(uv_handle_t* had_u)
free(ron_u); free(ron_u);
} }
/* _raft_conn_dead(): kill a connection.
*/
static void static void
_raft_conn_dead(u2_rcon* ron_u) _raft_conn_dead(u2_rcon* ron_u)
{ {
@ -276,6 +294,8 @@ _raft_conn_dead(u2_rcon* ron_u)
uv_close((uv_handle_t*)&ron_u->wax_u, _raft_conn_free); uv_close((uv_handle_t*)&ron_u->wax_u, _raft_conn_free);
} }
/* _raft_listen_cb(): generic listen callback.
*/
static void static void
_raft_listen_cb(uv_stream_t* str_u, c3_i sas_i) _raft_listen_cb(uv_stream_t* str_u, c3_i sas_i)
{ {
@ -290,6 +310,8 @@ _raft_listen_cb(uv_stream_t* str_u, c3_i sas_i)
} }
} }
/* _raft_getaddrinfo_cb(): generic getaddrinfo callback, makes connections.
*/
static void static void
_raft_getaddrinfo_cb(uv_getaddrinfo_t* gaf_u, _raft_getaddrinfo_cb(uv_getaddrinfo_t* gaf_u,
c3_i sas_i, c3_i sas_i,
@ -298,6 +320,8 @@ _raft_getaddrinfo_cb(uv_getaddrinfo_t* gaf_u,
/* TODO */ /* TODO */
} }
/* _raft_conn_all(): ensure that we are connected to each peer.
*/
static void static void
_raft_conn_all(u2_raft* raf_u, void (*con_f)(u2_rcon* ron_u)) _raft_conn_all(u2_raft* raf_u, void (*con_f)(u2_rcon* ron_u))
{ {
@ -349,18 +373,24 @@ _raft_conn_all(u2_raft* raf_u, void (*con_f)(u2_rcon* ron_u))
} }
} }
/* _raft_send_beat(): send a heartbeat (empty AppendEntries) to peer.
*/
static void static void
_raft_send_beat(u2_rcon* ron_u) _raft_send_beat(u2_rcon* ron_u)
{ {
/* TODO */ /* TODO */
} }
/* _raft_send_revo(): send a RequestVote to peer.
*/
static void static void
_raft_send_revo(u2_rcon* ron_u) _raft_send_revo(u2_rcon* ron_u)
{ {
/* TODO */ /* TODO */
} }
/* _raft_start_election(): bump term, vote for self, solicit votes from peers.
*/
static void static void
_raft_start_election(u2_raft* raf_u) _raft_start_election(u2_raft* raf_u)
{ {
@ -382,12 +412,19 @@ _raft_start_election(u2_raft* raf_u)
_raft_conn_all(raf_u, _raft_send_revo); _raft_conn_all(raf_u, _raft_send_revo);
} }
/* _raft_heartbeat(): send a heartbeat to all peers.
*/
static void static void
_raft_heartbeat(u2_raft* raf_u) _raft_heartbeat(u2_raft* raf_u)
{ {
_raft_conn_all(raf_u, _raft_send_beat); _raft_conn_all(raf_u, _raft_send_beat);
} }
/* _raft_time_cb(): generic timer callback.
**
** Called on election timeouts for non-leaders, and at heartbeat interval for
** leaders.
*/
static void static void
_raft_time_cb(uv_timer_t* tim_u, c3_i sas_i) _raft_time_cb(uv_timer_t* tim_u, c3_i sas_i)
{ {
@ -472,6 +509,8 @@ _raft_lone_init(u2_raft* raf_u)
raf_u->typ_e = u2_raty_lead; raf_u->typ_e = u2_raty_lead;
} }
/* u2_raft_io_init(): begin raft I/O.
*/
void void
u2_raft_io_init() u2_raft_io_init()
{ {