[tahoe-lafs-trac-stream] [tahoe-lafs] #1545: add readv() API to immutable-share storage-server protocol, use in downloader
tahoe-lafs
trac at tahoe-lafs.org
Sun Sep 25 17:25:53 PDT 2011
#1545: add readv() API to immutable-share storage-server protocol, use in
downloader
--------------------------+---------------------------
Reporter: warner | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: undecided
Component: code-storage | Version: 1.9.0a2
Keywords: performance | Launchpad Bug:
--------------------------+---------------------------
One of the most obvious fixes for the immutable-download performance
problems tracked in #1264 (and on the [[Performance/Sep2011]] results) is
to implement a scatter/gather {{{readv()}}} method for immutable shares.
The graphs show MDMF downloads running just as fast with k=60 as with k=3,
whereas for immutable files there is a drastic slowdown (10x) between k=3
and k=60. We're still investigating, but I suspect that Foolscap's
message-serialization performance is to blame, and an easy way to mitigate
that is to send fewer messages.
The interface should probably be just like the mutable-share's
{{{remote_readv()}}} API: a vector of {{{(offset,length)}}} tuples, and
the return value is a vector of data strings. (A future HTTP-based
interface will probably pack these vectors into a single string, but we
might experiment with doing that here too (basically do the marshalling
before handing anything to foolscap, trading off generality for
performance).
David-Sarah mentioned that some of their new storage-backend code (for
LAE) provides this interface, so we're likely to have the back half of
this feature fairly soon. The rest of the work is to change
immutable/downloader/share.py to turn a Request span into a read vector,
instead of looping over all pieces of the span and sending separate
{{{read()}}} requests for each.
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1545>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list