-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
42 lines (31 loc) · 1 KB
/
TODO
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
=TODO=
- stride read and write chunks
- simple mapreduce
- why chunk server eat up so much cpu time? 70%?
- server crash transparent for client
- object COW + cp
- socket.recv error retry in nio
- meta lookup cache
- client buffer
- chunk piping and replicating
- optimize for large amount of small files, put them in one chunk
- batch processing
CheckPoint:
If you want to flush mem data, you shall acquire a global lock to protect it
being written, which will hold server from further request processing, that's
unacceptable.
Current implementation is leaving mem data untouched, load old cp file, replay
logs and then flush back.
You can't snapshot an object if it's keeping changing, like shooting a moving
target.
It's different with flushing dirty file pages to disk.
epoll:
Request processing thread shall be very carefully not be blocked on one
request, waiting for io to be done.
http://scotdoyle.com/python-epoll-howto.html
Conn:
data
seq
request
response
aio and callbacks, notify operation done