[ZODB-Dev] IndexedCatalog status update

Christian Reis kiko at async.com.br
Fri Jun 27 00:46:24 EDT 2003


Hi there,

    Just a quick note to describe what we've been hacking on lately. To
start off, Johan has (sadly for us) left Brazil for Sweden, and is
currently in the process of praying to be accepted in university (we
wish him luck). I've been doing most of the IC work the past two weeks,
and I'm now working with Johan to assure 0.6.0 is the best IC release so
far. 

Hint: I think the update_schema feature is *the* killer IC feature we
were looking for.

A lot has changed in CVS since 0.5.0 was released. How much exactly can
be seen using this magical link:
http://bonsai.async.com.br/cvsquery.cgi?treeid=default&module=IndexedCatalog&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&hours=2&date=explicit&mindate=05%2F05%2F2003&maxdate=&cvsroot=%2Fcvs

I'll summarize the news so you know what to expect in the next release:

    - Shelf now offers an update_schemas method. This method causes all
      Catalogs to update their schema (based on the _ic_options
      attribute) to the latest version declared in the class, and
      migrates objects into the new schema. It also offers a manual
      function hook that you can add to your domain objects to do more
      complex updates to them automatically. 
      
      This feature allows you to update the database without needing to
      dump/restore or recreate your data, and was the #1 feature our
      users at Async requested for months now.

    - Util.py and parts of IndexedObject were rewritten in C by Nicholas
      Henke, and further hacked into shape by Johan and me. This was a
      nice speedup for certain mass-insertion cases.

    - We have basic support for Python dictionaries as attributes.

    - We now use signals internally to communicate important events in
      the Catalog; this reduces the amount of state we need to carry
      internally. We also introduced a Registry which stores shelves
      indexed by ZODB connection (so setLocalTransaction works
      properly).

    - Objects can be created inside (catalog.new()) or outside catalogs
      without any issues (0.5.0 shipped with some nasty regressions
      here). Weak instances are also treated correctly.

    - Our test suite was mostly reorganized/rewritten into saner
      versions. The 50+ tests now offer pretty decent coverage for the
      main features.

    - The usual assorted bugfixes and oopsen.

I'm pushing so we can wrap up a release of IC, but I'd like to see
feedback on how we're doing and what you are looking for. I've got just
this last bug to fix.. <wink>

Take care,
--
Christian Reis, Senior Engineer, Async Open Source, Brazil.
http://async.com.br/~kiko/ | [+55 16] 261 2331 | NMFL



More information about the ZODB-Dev mailing list