While we're fetching descriptors in a directory request, wouldn't it
be nice if we could parse and make use of the ones that are sitting
on the buffer?
This would let us bootstrap quicker, and be especially relevant once
we use the fallback consensus and start using slow dir caches to
bootstrap.
It will also avoid the 250K blobs sitting in ram.
This might be destabilizing enough that it should wait til 0.2.1.x. Not sure.
[Automatically added by flyspray2trac: Operating System: All]
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Get zlib unbuffering stuff working so we can turn zlib decompression on starting
at the body. (we do this for dirserver connections, but there we know where
the body starts.)
Find the end of each descriptor on a buffer as it arrives, while avoiding
potential O(n!^2) behavior in the presence of bad input.
Change our approach for recalling which descriptors we wanted to download; instead
of keeping the URL we asked for, we need to keep a set of all the digests we
asked for, so we can remove them one by one as they arrive.
For our own sanity, this would want to be a bufferevents-only feature that happens when we switch from a zlib-on-an-evbuffer to filtering bufferevents. Marking with the unspecified milestone, since it's a nice-to-have but not a must-have.
Trac: Parent: N/AtoN/A Keywords: N/Adeleted, N/Aadded Milestone: post 0.2.1.x to Tor: unspecified Description: While we're fetching descriptors in a directory request, wouldn't it
be nice if we could parse and make use of the ones that are sitting
on the buffer?
This would let us bootstrap quicker, and be especially relevant once
we use the fallback consensus and start using slow dir caches to
bootstrap.
It will also avoid the 250K blobs sitting in ram.
This might be destabilizing enough that it should wait til 0.2.1.x. Not sure.
[Automatically added by flyspray2trac: Operating System: All]
to
While we're fetching descriptors in a directory request, wouldn't it
be nice if we could parse and make use of the ones that are sitting
on the buffer?
This would let us bootstrap quicker, and be especially relevant once
we use the fallback consensus and start using slow dir caches to
bootstrap.
It will also avoid the 250K blobs sitting in ram.
This might be destabilizing enough that it should wait til 0.2.1.x. Not sure.
[Automatically added by flyspray2trac: Operating System: All]
not necessarily; you could still want to stream microdescriptors. Also, if we let non-clients stream router descriptors too, it saves them a decent bit of memory. Not necessarily a high-priority thing, but not necessarily a wontfix.
I'm not sure this would actually help us bootstrap that much faster, since we don't build circuits until we have enough descriptors anyway. But it could help some, and it could sure save memory.