SVN: ZODB/branches/hannosch-pickle-protocol2/ Added pickle protocol to the zeo connection format - this looks ugly :)

Hanno Schlichting <[email protected]>
Newsgroups gmane.comp.python.zope.zodb.cvs
Message-ID <[email protected]>
Log message for revision 111826:
  Added pickle protocol to the zeo connection format - this looks ugly :)
  

Changed:
  _U  ZODB/branches/hannosch-pickle-protocol2/etc/
  U   ZODB/branches/hannosch-pickle-protocol2/etc/sample.conf
  D   ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf
  U   ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf.in
  A   ZODB/branches/hannosch-pickle-protocol2/etc/zeo2.conf.in
  U   ZODB/branches/hannosch-pickle-protocol2/speedtest.cfg
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZEO/StorageServer.py
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZEO/component.xml
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZEO/runzeo.py
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZEO/zrpc/connection.py
  U   ZODB/branches/hannosch-pickle-protocol2/src/ZEO/zrpc/marshal.py

-=-

Property changes on: ZODB/branches/hannosch-pickle-protocol2/etc
___________________________________________________________________
Added: svn:ignore
   + zeo*.conf


Modified: ZODB/branches/hannosch-pickle-protocol2/etc/sample.conf
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/etc/sample.conf	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/etc/sample.conf	2010-05-01 14:52:58 UTC (rev 111826)
@@ -1,7 +1,8 @@
 # This configuration compares the performance of databases based on ZEO.
 
-# You need to start the ZEO server before running the tests:
+# You need to start the ZEO servers before running the tests:
 # bin/runzeo -C etc/zeo.conf
+# bin/runzeo -C etc/zeo2.conf
 
 # Run the tests via:
 # bin/zodbshootout etc/sample.conf -c 1
@@ -33,7 +34,7 @@
 
 <zodb zeo_p2>
     <zeoclient>
-        server $host:8100
+        server $host:8101
         pickle-protocol 2
     </zeoclient>
 </zodb>
@@ -49,7 +50,7 @@
 
 <zodb zeo_pcache_p2>
     <zeoclient>
-        server $host:8100
+        server $host:8101
         client 2
         var var
         cache-size 200000000

Deleted: ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf	2010-05-01 14:52:58 UTC (rev 111826)
@@ -1,12 +0,0 @@
-<zeo>
-  address 8100
-  read-only false
-  invalidation-queue-size 100
-  pid-filename /opt/Dropbox/Development/zope/zodb-pickle2/var/zeo.pid
-  # monitor-address PORT
-  # transaction-timeout SECONDS
-</zeo>
-
-<filestorage 1>
-  path /opt/Dropbox/Development/zope/zodb-pickle2/var/Data_zeo.fs
-</filestorage>

Modified: ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf.in
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf.in	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf.in	2010-05-01 14:52:58 UTC (rev 111826)
@@ -3,8 +3,6 @@
   read-only false
   invalidation-queue-size 100
   pid-filename ${buildout:directory}/var/zeo.pid
-  # monitor-address PORT
-  # transaction-timeout SECONDS
 </zeo>
 
 <filestorage 1>

Copied: ZODB/branches/hannosch-pickle-protocol2/etc/zeo2.conf.in (from rev 111822, ZODB/branches/hannosch-pickle-protocol2/etc/zeo.conf.in)
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/etc/zeo2.conf.in	                        (rev 0)
+++ ZODB/branches/hannosch-pickle-protocol2/etc/zeo2.conf.in	2010-05-01 14:52:58 UTC (rev 111826)
@@ -0,0 +1,12 @@
+<zeo>
+  address ${port}
+  read-only false
+  invalidation-queue-size 100
+  pid-filename ${buildout:directory}/var/zeo.pid
+  pickle-protocol 2
+</zeo>
+
+<filestorage 1>
+  path ${buildout:directory}/var/Data_zeo2.fs
+  pickle-protocol 2
+</filestorage>

Modified: ZODB/branches/hannosch-pickle-protocol2/speedtest.cfg
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/speedtest.cfg	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/speedtest.cfg	2010-05-01 14:52:58 UTC (rev 111826)
@@ -6,6 +6,7 @@
     test
     scripts
     zeoconf
+    zeoconf2
     zeoserver
 
 [scripts]
@@ -17,6 +18,12 @@
 output = ${buildout:directory}/etc/zeo.conf
 port = 8100
 
+[zeoconf2]
+recipe = collective.recipe.template
+input = ${buildout:directory}/etc/zeo2.conf.in
+output = ${buildout:directory}/etc/zeo2.conf
+port = 8101
+
 [zeoserver]
 recipe = zc.recipe.egg
 eggs = ZODB3

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZEO/StorageServer.py
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZEO/StorageServer.py	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZEO/StorageServer.py	2010-05-01 14:52:58 UTC (rev 111826)
@@ -814,7 +814,8 @@
                  monitor_address=None,
                  auth_protocol=None,
                  auth_database=None,
-                 auth_realm=None):
+                 auth_realm=None,
+                 pickle_protocol=1):
         """StorageServer constructor.
 
         This is typically invoked from the start.py script.
@@ -878,6 +879,9 @@
             subdirectory. This module may also define a DatabaseClass
             variable that should indicate what database should be used
             by the authenticator.
+
+        pickle_protocol -- The pickle protocol used by the server connections.
+            Defaults to 1.
         """
 
         self.addr = addr
@@ -899,6 +903,7 @@
         self.auth_protocol = auth_protocol
         self.auth_database = auth_database
         self.auth_realm = auth_realm
+        self._pickle_protocol = pickle_protocol
         self.database = None
         if auth_protocol:
             self._setup_auth(auth_protocol)

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZEO/component.xml
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZEO/component.xml	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZEO/component.xml	2010-05-01 14:52:58 UTC (rev 111826)
@@ -122,6 +122,12 @@
        </description>
     </key>
 
+    <key name="pickle-protocol" required="no" datatype="integer" default="1">
+      <description>
+        The pickle protocol used by the server. Defaults to 1.
+      </description>
+    </key>
+
   </sectiontype>
 
 </component>

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZEO/runzeo.py
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZEO/runzeo.py	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZEO/runzeo.py	2010-05-01 14:52:58 UTC (rev 111826)
@@ -344,6 +344,7 @@
         auth_protocol = options.auth_protocol,
         auth_database = options.auth_database,
         auth_realm = options.auth_realm,
+        pickle_protocol = getattr(options, 'pickle_protocol', 1),
         )
 
 

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZEO/zrpc/connection.py
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZEO/zrpc/connection.py	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZEO/zrpc/connection.py	2010-05-01 14:52:58 UTC (rev 111826)
@@ -573,7 +573,8 @@
         self.mgr = mgr
         map = {}
         Connection.__init__(self, sock, addr, obj, 'S', map=map)
-        self.marshal = ServerMarshaller()
+        self._pickle_protocol = getattr(mgr, '_pickle_protocol', 1)
+        self.marshal = ServerMarshaller(pickle_protocol=self._pickle_protocol)
         self.trigger = ZEO.zrpc.trigger.trigger(map)
         self.call_from_thread = self.trigger.pull_trigger
 

Modified: ZODB/branches/hannosch-pickle-protocol2/src/ZEO/zrpc/marshal.py
===================================================================
--- ZODB/branches/hannosch-pickle-protocol2/src/ZEO/zrpc/marshal.py	2010-05-01 13:52:57 UTC (rev 111825)
+++ ZODB/branches/hannosch-pickle-protocol2/src/ZEO/zrpc/marshal.py	2010-05-01 14:52:58 UTC (rev 111826)
@@ -21,6 +21,10 @@
 class Marshaller:
     """Marshal requests and replies to second across network"""
 
+    def __init__(self, pickle_protocol=1):
+        print pickle_protocol
+        self._pickle_protocol = pickle_protocol
+
     def encode(self, msgid, flags, name, args):
         """Returns an encoded message"""
         # (We used to have a global pickler, but that's not thread-safe. :-( )
@@ -31,7 +35,7 @@
         # being represented by \xij escapes in proto 0).
         # Undocumented:  cPickle.Pickler accepts a lone protocol argument;
         # pickle.py does not.
-        pickler = cPickle.Pickler(1)
+        pickler = cPickle.Pickler(self._pickle_protocol)
         pickler.fast = 1
 
         # Undocumented:  pickler.dump(), for a cPickle.Pickler, takes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.