[Zope-dev] Re: [Zope-Annce] ZEO 2.0 beta 1 released

Jeremy Hylton jeremy@alum.mit.edu
Wed, 28 Aug 2002 09:19:50 -0400


>>>>> "TD" == Toby Dickenson <tdickenson@geminidataloggers.com> writes:

  >> although we may do one more beta release to add some performance
  >> improvements.

  TD> Do you have something specific in mind?

I'd like to change this bit of code in handle_write():

            if n < len(v):
                # XXX It's unfortunate that we end up making many
                # slices of a large string.
                output.insert(0, v[n:])
                break # we can't write any more

If we send a very large message, which could be caused by a big pickle
or just a transaction that touches a lot of objects, the message gets
sent in little chunks.  The current implementation uses string slicing
to save the rest of the string, but that ends up making many copies of
the large string -- an O(n^2) proposition.

A possible solution is to store an index into the first string in
__output and just increment the index.  The logic will be a bit tricky
to get right.

  >> After the alpha release, I suggested that there would be several
  >> more alpha releases to add new features.  We didn't have the
  >> resources to pursue the new features.  Instead, we plan to get a
  >> solid 2.0 final release out as soon as possible.  New features
  >> will be postponed until
  >> 2.1.

  TD> I would like to merge the branch 'toby-signal-branch' in before
  TD> 2.0. This provides an easy way to use extensions to the storage
  TD> API across ZEO.

  TD> This feature is critical for DirectoryStorage. I am 100% happy
  TD> with the current implementation (but not very happy with the
  TD> name of the new method.... suggestions welcome)

I'll look at the branch before the next beta.  Anyone have ideas for a
new name?

Jeremy