Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Willemt Raft
Commits
ddf2b44d
Commit
ddf2b44d
authored
Dec 09, 2013
by
willem
Browse files
Clean up
parent
77cd6cfe
Changes
4
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
ddf2b44d
...
@@ -37,7 +37,7 @@ main_test.c:
...
@@ -37,7 +37,7 @@ main_test.c:
fi
fi
sh make-tests.sh
"test_*.c"
>
main_test.c
sh make-tests.sh
"test_*.c"
>
main_test.c
tests_main
:
main_test.c raft_server.c raft_log.c
raft_candidate.c raft_follower.c raft_leader.c
raft_peer.c test_server.c test_server_request_vote.c test_peer.c test_log.c mock_send_functions.c CuTest.c $(LLQUEUE_DIR)/linked_list_queue.c
tests_main
:
main_test.c raft_server.c raft_log.c raft_peer.c test_server.c test_server_request_vote.c test_peer.c test_log.c mock_send_functions.c CuTest.c $(LLQUEUE_DIR)/linked_list_queue.c
$(CC)
$(CCFLAGS)
-o
$@
$^
$(CC)
$(CCFLAGS)
-o
$@
$^
./tests_main
./tests_main
...
...
raft_candidate.c
View file @
ddf2b44d
...
@@ -39,16 +39,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
...
@@ -39,16 +39,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "raft.h"
#include "raft.h"
typedef
struct
{
/* The set of servers from which the candidate has
* received a RequestVote response in this term. */
int
votes_responded
;
/* The set of servers from which the candidate has received a vote in this term. */
int
votes_granted
;
}
candidate_t
;
void
raft_candidate_periodic
(
raft_server_t
*
me
)
void
raft_candidate_periodic
(
raft_server_t
*
me
)
{
{
...
...
raft_leader.c
View file @
ddf2b44d
...
@@ -40,22 +40,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
...
@@ -40,22 +40,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "raft.h"
#include "raft.h"
typedef
struct
{
/* Array: For each server, index of the next log entry to send to
* that server (initialized to leader last log index +1) */
int
*
nextIndex
;
/* Array: for each server, index of highest log entry known to be
* replicated on server (initialized to 0, increases monotonically) */
int
*
matchIndex
;
#if 0
/* The latest entry that each follower has acknowledged is the same as
* the leader's. This is used to calculate commitIndex on the leader. */
int last_agree_index;
#endif
}
leader_t
;
void
raft_leader_periodic
(
raft_server_t
*
me
)
void
raft_leader_periodic
(
raft_server_t
*
me
)
...
...
raft_server.c
View file @
ddf2b44d
...
@@ -65,14 +65,39 @@ typedef struct {
...
@@ -65,14 +65,39 @@ typedef struct {
int
election_timeout
;
int
election_timeout
;
int
request_timeout
;
int
request_timeout
;
// hashmap_t* peers;
// int log_Size;
/* who has voted for me */
/* who has voted for me */
int
*
votes_for_me
;
int
*
votes_for_me
;
}
raft_server_private_t
;
}
raft_server_private_t
;
typedef
struct
{
/* Array: For each server, index of the next log entry to send to
* that server (initialized to leader last log index +1) */
int
*
nextIndex
;
/* Array: for each server, index of highest log entry known to be
* replicated on server (initialized to 0, increases monotonically) */
int
*
matchIndex
;
#if 0
/* The latest entry that each follower has acknowledged is the same as
* the leader's. This is used to calculate commitIndex on the leader. */
int last_agree_index;
#endif
}
leader_t
;
typedef
struct
{
/* The set of servers from which the candidate has
* received a RequestVote response in this term. */
int
votes_responded
;
/* The set of servers from which the candidate has received a vote in this
* term. */
int
votes_granted
;
}
candidate_t
;
/* TODO: replace with better hash() */
/* TODO: replace with better hash() */
static
unsigned
long
__peer_hash
(
static
unsigned
long
__peer_hash
(
const
void
*
obj
const
void
*
obj
...
@@ -197,8 +222,7 @@ void raft_become_follower(raft_server_t* me_)
...
@@ -197,8 +222,7 @@ void raft_become_follower(raft_server_t* me_)
/**
/**
* Convert to candidate if election timeout elapses without either
* Convert to candidate if election timeout elapses without either
* Receiving valid AppendEntries RPC, or
* Receiving valid AppendEntries RPC, or
* Granting vote to candidate
* Granting vote to candidate */
*/
#if 0
#if 0
int raft_election_timeout_elapsed(raft_server_t* me_)
int raft_election_timeout_elapsed(raft_server_t* me_)
{
{
...
@@ -245,6 +269,7 @@ raft_entry_t* raft_get_entry_from_idx(raft_server_t* me_, int idx)
...
@@ -245,6 +269,7 @@ raft_entry_t* raft_get_entry_from_idx(raft_server_t* me_, int idx)
int
raft_recv_appendentries_response
(
raft_server_t
*
me_
,
int
peer
,
msg_appendentries_response_t
*
ae
)
int
raft_recv_appendentries_response
(
raft_server_t
*
me_
,
int
peer
,
msg_appendentries_response_t
*
ae
)
{
{
// TODO
return
0
;
return
0
;
}
}
...
@@ -468,36 +493,15 @@ int raft_vote(raft_server_t* me_, int peer)
...
@@ -468,36 +493,15 @@ int raft_vote(raft_server_t* me_, int peer)
return
0
;
return
0
;
}
}
#if 0
raft_peer_t* raft_add_peer(raft_server_t* me_, int peer_udata)
{
raft_server_private_t* me = (void*)me_;
raft_peer_t* p;
if (hashmap_get(me->peers,peer_udata))
{
return NULL;
}
p = raft_peer_new(peer_udata);
hashmap_put(me->peers, peer_udata, p);
return p;
}
int raft_remove_peer(raft_server_t* me_, int peer)
{
return 0;
}
#endif
int
raft_get_num_peers
(
raft_server_t
*
me_
)
int
raft_get_num_peers
(
raft_server_t
*
me_
)
{
{
// TODO
return
0
;
return
0
;
}
}
int
raft_recv_entry
(
raft_server_t
*
me_
,
int
peer
,
msg_entry_t
*
cmd
)
int
raft_recv_entry
(
raft_server_t
*
me_
,
int
peer
,
msg_entry_t
*
cmd
)
{
{
// TODO
return
0
;
return
0
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment