[tahoe-lafs-trac-stream] [tahoe-lafs] #1885: cloud backend: redundant reads of chunks from cloud when downloading large files (was: cloud backend: redundant reads of chunks from cloud when downloading large MDMF file)
tahoe-lafs
trac at tahoe-lafs.org
Tue May 28 16:01:46 UTC 2013
#1885: cloud backend: redundant reads of chunks from cloud when downloading large
files
-------------------------+-------------------------------------------------
Reporter: | Owner:
davidsarah | Status: new
Type: defect | Milestone: 1.11.0
Priority: normal | Version: 1.9.2
Component: code- | Keywords: cloud-backend cache download
storage | performance
Resolution: |
Launchpad Bug: |
-------------------------+-------------------------------------------------
Changes (by daira):
* keywords: cloud-backend cache download performance mdmf => cloud-backend
cache download performance
Old description:
> I uploaded a 7.7 MiB video as an MDMF file using the cloud backend on S3
> (as of [https://github.com/davidsarah/tahoe-
> lafs/commit/022796fb7813c2f42d668a0ee3de9abae869deb5 1819-cloud-
> merge/022796fb]), and then downloaded it. From {{{flogtool tail}}}ing the
> storage server, I saw that it was reading the same chunks multiple times
> during the download. That suggests that the chunk cache is not operating
> well enough.
>
> The file was being downloaded by playing it as a video in Chromium; I
> don't think that makes a difference.
New description:
I uploaded a 7.7 MiB video as an MDMF file using the cloud backend on S3
(as of [https://github.com/davidsarah/tahoe-
lafs/commit/022796fb7813c2f42d668a0ee3de9abae869deb5 1819-cloud-
merge/022796fb]), and then downloaded it. From {{{flogtool tail}}}ing the
storage server, I saw that it was reading the same chunks multiple times
during the download. That suggests that the chunk cache is not operating
well enough.
The file was being downloaded by playing it as a video in Chromium; I
don't think that makes a difference.
Update: this also applies to immutable files if they are large enough.
--
Comment:
I changed {{{ChunkCache}}} to use a true LRU replacement policy, and that
seems to have fixed this problem. (LRU is not often used because keeping
track of ages can be inefficient for a large cache, but here we only need
a cache of a few elements. In practice 5 chunks seems to be sufficient for
the sizes of files I've tested; will investigate whether it's enough for
larger files later.)
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1885#comment:5>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list