Hash: SHA1

Christian Theune wrote:
> On Tue, 2009-06-09 at 20:07 -0400, Tres Seaver wrote:
>> Hash: SHA1
>> Chris McDonough wrote:
>>> Log message for revision 100775:
>>>   - Port okascore.c optimization used in okapiiindex from Zope2 catalog
>>>     implementation.  This module is compiled conditionally, based on
>>>     whether your environment has a working C compiler.
>>>   - Don't use ``len(self._docweight)`` in okapiindex _search_wids method
>>>     (obtaining the length of a BTree is very expensive at scale).
>>>     Instead use self.documentCount().  Also a Zope2 port.
>> Crap!  this set of performance fixes was added *six years ago* to the
>> Zope2 version from which zope.index was forked!
>> Hasn't anybody been using this package?
> We're using this package. The text index I can only remember in a
> not-so-critical piece where performance currently is not an issue. Also,
> following checkins even today wouldn't have me remember that this code
> is shared.

The code which now lives in 'zope.index' is a copy-and-rename-everything
fork of what was in the Zope2 PluggableIndexes / ZCTextIndex products as
of around Christmas, 2002.  The fix I was replying to is *far* from the
first one which didn't get ported from subsequent changes to the Zope2
indexes, which have obviously been in *heavy* production use.

I propose that we consider merging the two implementations, along the
lines of the following:

1. Review the change history of the two codebases since the original
   fork, porting relevant changes from the Z2 indexes to the
   corresponding Z3 implementations.

2. Review / update the tests for the Z3 indexes, with a goal of 100%
   coverage, as well as improving the "quality" of the tests.

3. Re-implement the Z2 indexes as thin wrappers around the Z3 versions,
   ensuring that all existing Z2 tests continue to pass.

This is somewhat the same pattern as Andreas used to merge the ZPT
implementations, I think.  This effort could be the focus of a sprint
team, if there was interest.

- --
Tres Seaver          +1 540-429-0999          tsea...@palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


Zope-Dev maillist  -  Zope-Dev@zope.org
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to