Browse Source

Note some subtasks and difficulties involved with reducing RAM usage on dirservers

svn:r6428
Nick Mathewson 19 years ago
parent
commit
821a3963fa
1 changed files with 21 additions and 2 deletions
  1. 21 2
      doc/TODO

+ 21 - 2
doc/TODO

@@ -62,11 +62,30 @@ Must-have items for 0.1.2.x:
 R - Server usability
 R - Server usability
 N - Better hidden service performance, with possible redesign.
 N - Better hidden service performance, with possible redesign.
   - Asynchronous DNS
   - Asynchronous DNS
+    - What to use? C-ares? Libdns? AGL's patch?
   - Better estimates in the directory of whether servers have good uptime
   - Better estimates in the directory of whether servers have good uptime
     (high expected time to failure) or good guard qualities (high
     (high expected time to failure) or good guard qualities (high
     fractional uptime).
     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
 N - oprofile including kernel time on multiple platforms
 
 
 Items for 0.1.2:
 Items for 0.1.2: