-
Notifications
You must be signed in to change notification settings - Fork 1
/
todo.txt
70 lines (49 loc) · 1.44 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
- log to mongodb!
- finish election
- send leader address to client
- do two phase commit
- write log file
- sync total data
- sync partial data
- encode values in a better way
- use logrotation and compression!
catch nonode errors in getchildren
tests:
assure that biggest logfile wins!
run 100 client requests,
make sure everybody has same log file size
check kazzoo connection, deal witch suspend and lost - how?
set status to down if commit failed!
make sure client 1 does not accept prep_requests after 1000 requests
bring client back after number of requests
deal with lockfiles!
./db0/LOCK
- does client need to contain a database?
better communication with client, return tuple of what to do!
order of read and write requests
close filehandler!!!
if i am first child i have to be primary!
testcase:
primary alone, deny, add a backup, accept
check master failure
clear database if child!
do selftest logfile == consecutive logids, key, value checksum
check different use cases:
startup:
if !is primary:
get op log and replay database
set ephemeral node or notify primary zerorpc
Replica errors:
ready fails
see if child is alive - retry
commit fails
identify child:
if child is still alive, restart child remotely
else
wait for child to restart and sync operations log
Primary error:
everybody child watches on ready
new node comes up
gets operations log from master
updates database
sets ephemeral node