Subtransactions allow Zope to commit small parts of a transaction over a period of time instead of all at once. For ZCatalog, this means using subtransactions can signficantly reduce the memory requirements needed to index huge amounts of text all at once.

If enabled, subtransactions will reduce the memory requirements of ZCatalog, but at the expense of speed. If you choose to enable subtransactions, you can adjust how often ZCatalog commits a subtransactions by adjusting the threshold below.

If you are using ZCatalog and ZSQL Methods in the same transaction, you must disable subtransactions, they are not compatible with ZSQL Methods.

Subtransactions are Enabled Disabled

Subtransactions Subtransactions

The Subtransaction threshold is the number of words the catalog will index before it commits a subtransaction. If this number is low, the Catalog will take longer to index but consume less memory. If this number is higher, the Catalog will index quickly but consume much more memory.

Subtransaction threshold:

Index Status