[tahoe-lafs-trac-stream] [tahoe-lafs] #393: mutable: implement MDMF

tahoe-lafs trac at tahoe-lafs.org
Tue Aug 23 09:38:42 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 davidsarah):

 Replying to [comment:147 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.

 [source:src/allmydata/frontends/sftpd.py at 5179#L813 GeneralSFTPFile._close]
 does:
 {{{
 self.filenode.overwrite(MutableFileHandle(self.consumer.get_file()))
 }}}

 where {{{self.consumer.get_file()}}} is a file object for an open
 temporary file.

 Does this read the whole file into memory? If it does, I think the bug is
 in {{{MutableFileHandle}}} or {{{MutableFileVersion.overwrite}}}. The SFTP
 frontend itself is careful not to assume that files fit into memory.

 (I agree with the more general point that we need tests to detect whether
 we're making that assumption. Manual smoke-testing with large files would
 also help, and could be done with the alpha.)

-- 
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/393#comment:148>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list