Merge branch 'httpgw' of git@github.com:gritzko/swift
[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 rotated ACK queue
22 * 32 bit time field
23 * ?empty/full binmaps
24 * initiate RTT with prev RTT to host:port
25 * fractional cwnd
26 * ack_out rolling queue
27
28 CACHING/FILES
29 * connection rotation
30 * file rotation
31 * real LRU/LFU
32 * file/hash-file re-open in read-only mode
33 * no cache recheck, failure-resistant
34 * completion mark
35 * unified events/callbacks
36 * move to 64-bit IO
37 * Transfer(fd) constructor
38 * think of sliding window(s)
39
40 MANIFOLD
41 * all-swarm performance stats
42 * run chained setups (cmd line protocol subsetting)
43 * implement: multiple swift instances per server
44 * run thousand-daemon caching tests (use httpgw)
45 * use a dedicated tracker
46 * add NATs to the setup
47 * recover mfold.libswift.org
48 * integrate Windowses
49 * add WiFi nodes
50
51 API
52 * notification if data is retrieved by an external code
53 * events on data retrieval
54 * pluggable storage
55
56 NAT
57 * NAT type detection => need peer identifiers (x100 amplification)
58
59 MFOLD
60 * integrate multi-peer changes by Jori
61 * do global swarm stats
62
63 OTHER
64 * httpgw or nginx?
65 * Sha1Hash constructor ambiguity
66 * don't #include .cpp
67 * think of using HTTP (?) as a fallback
68 * sync the draft (hash goes first, ACK/HAVE)
69 * Gertjan: separate peer from channel? cng ctrl per peer ?
70 * packing hashes into a single datagram (tracking 1000s)
71 * partial channels / lightweight channels
72 * socket array is misplaced
73 * the invalid-hash bug