[ZODB-Dev] ZEO bandwidth requirements?

Jeremy Hylton jeremy@zope.com
Fri, 26 Oct 2001 14:22:57 -0400 (EDT)


I've don't have any good intuition about how much bandwidth ZEO
requires.  I imagine it depends on a lot on Zope/application issues.
I'm not sure how good the cache hit rate is, which would affect load
performance.  Nor do I know how often a Zope page view commits changes
that would cause stores.

I imagine, though, that transferring pickle data during load and store
is the largest consumer of bandwidth.  If that's the case, you could
add the following patch to log the size of pickles transferred during
loads and stores.

Jeremy

Index: ClientStorage.py
===================================================================
RCS file: /cvs-repository/StandaloneZODB/ZEO/ClientStorage.py,v
retrieving revision 1.33.2.4
diff -c -c -r1.33.2.4 ClientStorage.py
*** ClientStorage.py	26 Oct 2001 17:20:37 -0000	1.33.2.4
--- ClientStorage.py	26 Oct 2001 18:20:34 -0000
***************
*** 357,362 ****
--- 357,363 ----
              p = cache.load(oid, version)
              if p: return p
              p, s, v, pv, sv = self._call('zeoLoad', oid)
+             LOG("bandwidth", INFO, "load %d" % len(p))
              cache.checkSize(0)
              cache.store(oid, p, s, v, pv, sv)
              if not v or not version or version != v:
***************
*** 400,405 ****
--- 401,407 ----
          try:
              serial=self._call.sendMessage('storea', oid, serial,
                                            data, version, self._serial)
+             LOG("bandwidth", INFO, "store %d" % len(data))
              
              write=self._tfile.write
              buf = string.join(("s", oid,