[Checkins] SVN: ZODB/branches/hannosch-pickle-protocol2/ Generalize the option as pickle-protocol and also use it for the transaction buffer

Hanno Schlichting hannosch at hannosch.eu
Sat May 1 08:00:57 EDT 2010


Log message for revision 111818:
  Generalize the option as pickle-protocol and also use it for the transaction buffer
  

Changed:
  U   ZODB/branches/hannosch-pickle-protocol2/etc/sample.conf
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZEO/ClientStorage.py
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZEO/TransactionBuffer.py
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZODB/component.xml
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZODB/config.py

-=-
Modified: ZODB/branches/hannosch-pickle-protocol2/etc/sample.conf
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/etc/sample.conf	2010-05-01 11:51:50 UTC (rev 111817)
+++ ZODB/branches/hannosch-pickle-protocol2/etc/sample.conf	2010-05-01 12:00:57 UTC (rev 111818)
@@ -38,6 +38,6 @@
         client 1
         var var
         cache-size 200000000
-        cache-protocol 2
+        pickle-protocol 2
     </zeoclient>
 </zodb>

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZEO/ClientStorage.py
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZEO/ClientStorage.py	2010-05-01 11:51:50 UTC (rev 111817)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZEO/ClientStorage.py	2010-05-01 12:00:57 UTC (rev 111818)
@@ -123,7 +123,7 @@
                  username='', password='', realm=None,
                  blob_dir=None, shared_blob_dir=False,
                  blob_cache_size=None, blob_cache_size_check=10,
-                 cache_protocol=1,
+                 pickle_protocol=1,
                  ):
         """ClientStorage constructor.
 
@@ -235,8 +235,8 @@
             loaded into the cache. Defaults to 10% of the blob cache
             size.   This option is ignored if shared_blob_dir is true.
 
-        cache_protocol
-            The pickle protocol used for the ZEO cache. Defaults to 1.
+        pickle_protocol
+            The pickle protocol used for the client. Defaults to 1.
 
         Note that the authentication protocol is defined by the server
         and is detected by the ClientStorage upon connecting (see
@@ -322,11 +322,13 @@
         self._server_addr = None
 
         self._pickler = self._tfile = None
+        self._pickle_protocol = pickle_protocol
 
         self._info = {'length': 0, 'size': 0, 'name': 'ZEO Client',
                       'supportsUndo': 0, 'interfaces': ()}
 
-        self._tbuf = self.TransactionBufferClass()
+        self._tbuf = self.TransactionBufferClass(
+            pickle_protocol=pickle_protocol)
         self._db = None
         self._ltid = None # the last committed transaction
 
@@ -400,7 +402,6 @@
             cache_path = None
 
         self._cache = self.ClientCacheClass(cache_path, size=cache_size)
-        self._cache_protocol = cache_protocol
 
         self._blob_cache_size = blob_cache_size
         self._blob_data_bytes_loaded = 0
@@ -1303,7 +1304,7 @@
         # setup tempfile to hold zeoVerify results and interim
         # invalidation results
         self._tfile = tempfile.TemporaryFile(suffix=".inv")
-        self._pickler = cPickle.Pickler(self._tfile, self._cache_protocol)
+        self._pickler = cPickle.Pickler(self._tfile, self._pickle_protocol)
         self._pickler.fast = 1 # Don't use the memo
 
         if self._connection.peer_protocol_version < 'Z309':

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZEO/TransactionBuffer.py
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZEO/TransactionBuffer.py	2010-05-01 11:51:50 UTC (rev 111817)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZEO/TransactionBuffer.py	2010-05-01 12:00:57 UTC (rev 111818)
@@ -55,7 +55,7 @@
     # inconsistent data.  This should have minimal effect, though,
     # because the Connection is connected to a closed storage.
 
-    def __init__(self):
+    def __init__(self, pickle_protocol=1):
         self.file = tempfile.TemporaryFile(suffix=".tbuf")
         self.lock = Lock()
         self.closed = 0
@@ -64,7 +64,8 @@
         self.blobs = []
         # It's safe to use a fast pickler because the only objects
         # stored are builtin types -- strings or None.
-        self.pickler = cPickle.Pickler(self.file, 1)
+        self.pickle_protocol = pickle_protocol
+        self.pickler = cPickle.Pickler(self.file, pickle_protocol)
         self.pickler.fast = 1
 
     def close(self):

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZODB/component.xml
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZODB/component.xml	2010-05-01 11:51:50 UTC (rev 111817)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZODB/component.xml	2010-05-01 12:00:57 UTC (rev 111818)
@@ -138,9 +138,9 @@
         The maximum size of the client cache, in bytes, KB or MB.
       </description>
     </key>
-    <key name="cache-protocol" required="no" datatype="integer">
+    <key name="pickle-protocol" required="no" datatype="integer">
       <description>
-        The pickle protocol used for the cache. Defaults to 1.
+        The pickle protocol used for the client. Defaults to 1.
       </description>
     </key>
     <key name="name" default="">

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZODB/config.py
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZODB/config.py	2010-05-01 11:51:50 UTC (rev 111817)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZODB/config.py	2010-05-01 12:00:57 UTC (rev 111818)
@@ -188,8 +188,8 @@
             options['blob_cache_size'] = self.config.blob_cache_size
         if self.config.blob_cache_size_check is not None:
             options['blob_cache_size_check'] = self.config.blob_cache_size_check
-        if self.config.cache_protocol is not None:
-            options['cache_protocol'] = self.config.cache_protocol
+        if self.config.pickle_protocol is not None:
+            options['pickle_protocol'] = self.config.pickle_protocol
 
         return ClientStorage(
             L,



More information about the checkins mailing list