[tahoe-lafs-trac-stream] [tahoe-lafs] #393: mutable: implement MDMF
tahoe-lafs
trac at tahoe-lafs.org
Sun Aug 21 23:20:12 PDT 2011
#393: mutable: implement MDMF
-------------------------+-------------------------------------------------
Reporter: warner | Owner: zooko
Type: | Status: new
enhancement | Milestone: 1.9.0
Priority: major | Version: 1.0.0
Component: code- | Keywords: newcaps performance random-access
mutable | privacy gsoc mdmf mutable backward-
Resolution: | compatibility forward-compatibility review-
Launchpad Bug: | needed
-------------------------+-------------------------------------------------
Comment (by zooko):
Kevan has caught some places which say "if the file is mutable, load all
of its contents into RAM", for example in
20110802021207-b8d28-b0c006c43f8efc1c3d89484ed7d6ff037f07774a
{{{GeneralSFTPFile._close()}}}. This worked in Tahoe-LAFS <= v1.8, because
mutable files were necessarily smaller than RAM, but this assumption is no
longer valid in Tahoe-LAFS >= v1.9.
If he didn't catch one, then the fact that a file is mutable but can have
large contents (even larger than RAM) would be a critical bug. How can we
be sure we've caught all of them? Can we write unit tests which detect if
the entire file has been loaded into RAM? (Somehow... by examining the
change in the RAM usage? By scanning the Python strings for a special
pattern which we've put into the MDMF file? Or better: by using a mock
object that observes how many reads of what size the client performs and
when the resulting objects get garbage collected and adds up the high
water mark.)
Failing that, we should have someone else do what Kevan has presumably
already done and search for all uses of mutable files and examine each use
to see if it reads the entire contents into RAM.
(Should this comment turn into a new ticket?)
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/393#comment:147>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list