[Zope] ZCatalog Strategy
Dieter Maurer
dieter at handshake.de
Fri Mar 24 15:00:22 EST 2006
Mark Gibson wrote at 2006-3-22 19:28 -0700:
>I'm struggling to weigh the cost of getObject() vs. the cost of adding
>more metadata to the catalog. I'll explain my situation.
>
>I have 10,000 widgets cataloged. I do a path and date query that
>returns me maybe 12 of these. Then I have a choice of calling
>getObject().getData() on each of these, or I could add getData to the
>catalog metadata.
>
>Does the cost of calling getObject() for a dozen objects justify
>creating a new metadata field?
>
>More generally how does a large amount of metadata in the catalog affect
>performance of queries?
This is very difficult to say.
We have used the standard metadata set for a long time.
It contains "description". However, in our cases
"description" was usually several kb large.
We found that all catalog operations (lookup, indexing)
were very slow and modifying catalog operations caused
huge transaktions.
The "IOBBuckets" containing the metadata records have
been the culprit. Usually, they contain 45 metadata records.
If you need one record, you in fact handle usually 45 of them.
In our case, the buckets usually have been several 100 kB big -- much
larger then usual container objects...
On the other hand, if you have small metadata records (say, containing
a few integers), then loading them may be much faster
than loading all intermediate objects to your final object -- especially
for applications such as determining statistics data (when you
are processing a lot of objects).
--
Dieter
More information about the Zope
mailing list