[z3-checkins] r24075 - z3/sqlos/trunk/src/sqlos/file

jinty at codespeak.net jinty at codespeak.net
Tue Mar 7 16:46:07 CET 2006


Author: jinty
Date: Tue Mar  7 16:46:05 2006
New Revision: 24075

Modified:
   z3/sqlos/trunk/src/sqlos/file/fsutility.py
Log:
Make sure we dont store a whole file in memory.

Modified: z3/sqlos/trunk/src/sqlos/file/fsutility.py
==============================================================================
--- z3/sqlos/trunk/src/sqlos/file/fsutility.py	(original)
+++ z3/sqlos/trunk/src/sqlos/file/fsutility.py	Tue Mar  7 16:46:05 2006
@@ -362,8 +362,12 @@
     def putFile(self, id, filename, file):
         # XXX - this is really crappilly inefficient.
         tmpfile = open(self._calcTmpFileName(id), 'w')
-        tmpfile.write(file.read())
-        file.close()
+        blocksize = 8*1024 # 8kb, what is optimal???
+        data = file.read(blocksize)
+        while data:
+            tmpfile.write(data)
+            data = file.read(blocksize)
+        tmpfile.close() # XXX - Do we need a try:finally here?
         self._filenames[id] = filename
         self._joinTransaction()
         self._state[id] = CHANGED


More information about the z3-checkins mailing list