diff --git a/doc/TODO b/doc/TODO index 24c322cbf6..496dc1214f 100644 --- a/doc/TODO +++ b/doc/TODO @@ -62,11 +62,30 @@ Must-have items for 0.1.2.x: R - Server usability N - Better hidden service performance, with possible redesign. - Asynchronous DNS + - What to use? C-ares? Libdns? AGL's patch? - Better estimates in the directory of whether servers have good uptime (high expected time to failure) or good guard qualities (high fractional uptime). - - memory usage on dir servers. - copy less! +N . memory usage on dir servers. copy less! + o Remember offset and location of each descriptor in the cache/journal + - When sending a big pile of descs to a client, don't shove them all on + the buffer at once. + X This may require routerinfo_t or signed_descriptor_t to get slightly + refcounted. (Only slightly; we'd only need to know whether it's on + the routerlist->routers or routerlist->old_routers, and how many + directory conns are returning it.) + - Possibly, we could just to keep a list of the descriptor digests for + the descriptors we still want to send. We might end up truncating + some replies by returning fewer descriptors than were requested (if + somebody requests a desc that we throw away before we deliver it), + but this happens only when somebody wants an obsolete desc, and + clients can already handle truncated replies. + - But what do we do about compression? That's the part that makes + stuff hard. + + - Make sure offset is correct in the presence of windows FS insanity. + - Consider whether it's smart to mmap cache files where possible. + - Consider whether it's smart to lazy-load routerdescs on non-directories. N - oprofile including kernel time on multiple platforms Items for 0.1.2: