more lapses
[swift-upb.git] / TODO
1     TRIAL TODO
2
3 STATE MACHINE
4 * imposed HINTs are terribly broken, resent for the data in flight 
5 * check ACK/HAVE redundancy
6 * HAVE overuses find_filtered
7 * set priorities on ranges
8 * small-progress update problem (aka peer nap)
9   guarantee size of updates < x% of data, on both ends
10 * SWIFT_MSGTYPE_RCVD SWIFT_MSGTYPE_SENT
11 * HAVE ALL / HAVE NONE
12 * aggregate ACKS (schedule for +x ms)
13 * channel close msg (hs 0)
14 * connection rotation / pex / pex_del
15 * misterious bug: Rdata (NONE)
16 * ?amend MAX_REORDER depending on rtt_dev
17
18 PERFORMANCE
19 * move to the.zett's binmaps
20 * optimize redundant HASH messages
21 * move to rolling HAVE queue
22 * 32 bit time field
23 * ?empty/full binmaps
24 * initiate RTT with prev RTT to host:port
25 * fractional cwnd
26
27 CACHING/FILES
28 * connection rotation
29 * file rotation
30 * real LRU/LFU
31 * file/hash-file re-open in read-only mode
32 * no cache recheck, failure-resistant
33 * completion mark
34 * unified events/callbacks
35 * move to 64-bit IO
36 * Transfer(fd) constructor
37 * think of sliding window(s)
38
39 MANIFOLD
40 * all-swarm performance stats
41 * run chained setups (cmd line protocol subsetting)
42 * implement: multiple swift instances per server
43 * run thousand-daemon caching tests (use httpgw)
44 * use a dedicated tracker
45 * add NATs to the setup
46 * recover mfold.libswift.org
47 * integrate Windowses
48 * add WiFi nodes
49
50 API
51 * notification if data is retrieved by an external code
52 * events on data retrieval
53 * pluggable storage
54
55 NAT
56 * NAT type detection => need peer identifiers (x100 amplification)
57
58 MFOLD
59 * integrate multi-peer changes by Jori
60 * do global swarm stats
61
62 OTHER
63 * httpgw or nginx?
64 * Sha1Hash constructor ambiguity
65 * don't #include .cpp
66 * think of using HTTP (?) as a fallback
67 * add header/footer, better abstract to the draft
68 * Gertjan: separate peer from channel? cng ctrl per peer ?
69 * packing hashes into a single datagram (tracking 1000s)
70 * partial channels / lightweight channels
71 * socket array is misplaced
72 * the invalid-hash bug