[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] Clarify mmap and memory-use hacks.



Update of /home/or/cvsroot/tor/doc
In directory moria:/tmp/cvs-serv22041/doc

Modified Files:
	TODO 
Log Message:
Clarify mmap and memory-use hacks.

Index: TODO
===================================================================
RCS file: /home/or/cvsroot/tor/doc/TODO,v
retrieving revision 1.456
retrieving revision 1.457
diff -u -p -d -r1.456 -r1.457
--- TODO	30 May 2006 20:41:22 -0000	1.456
+++ TODO	16 Jun 2006 15:40:57 -0000	1.457
@@ -28,27 +28,31 @@ Items for 0.1.2.x:
         break our dependency on dyndns.
       - Count TLS bandwidth more accurately
       - Write-limit directory responses.
-    . Improve memory usage on tight-memory machines.
-      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 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 clients handle missing Content-Length tags.
-      - Implement on-the-fly compression
-      - 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   . Improve memory usage on tight-memory machines.
+      - Directory-related fixes.
+        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. 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.
+          - Implement compress/decompress-on-the-fly support.
+          - Use it for returning lists of descriptors and lists of
+            network status docs.
+          o Make clients handle missing Content-Length tags.  (Oh, they do.)
+            o Verify that this has happened for a long time.
+        - Try a similar trick for spooling out v1 directories.
+        - Look into pulling serverdescs off buffers as they arrive.
+        - Mmap cache files where possible.
+          - Mmap cached-routers file; when building it, go oldest-to-newest.
+            - Make sure offset is correct in the presence of windows FS
+              insanity.
+          - Save and mmap v1 directories; store them zipped?
+
     - "bandwidth classes", for incoming vs initiated-here conns.
 N   - Asynchronous DNS