Proposer : Gil Forcada
Seconder : Maik Derstappen
Abstract
Move all functionality on existing packages (Products.ZCatalog, Products.CMFCore and Products.CMFPlone) and apply all monkey patches directly to the packages they belong to, like Products.CMFCore or Products.Archetypes.
Motivation
Using collective.indexing has two main benefits:
- performance: indexing operations are queued, optimized and done at the transaction boundary. Only one indexing operation is done per object on any transaction. This means that plone is much faster, specially if lots of event handlers modify objects and keep reindexing the same object over and over again.
- pluggable: it creates a utility that enables third-party search indexers to be notified on any indexing operation (that's how collective.solr is plugged-in)
We think they are important and transparent enough that any Plone installation will benefit from it, specially for the performance part, although the pluggable makes even more easier to scale Plone as the site grows.
Assumptions
Some tests in Plone core will need to be updated to work around the indexing optimizations (as tests expect that objects are indexed/reindexed/unindexed right away).
No refactorings will be done on either CMFPlone CatalogTool nor CMFCore CatalogTool nor ZCatalog ZCatalog base class (which both CMFPlone and CMFCore override), this cleanup/refactoring is out of scope.
We deemed more importantly to get the functionality first in rather than merging the catalog tools together. At the same time we encourage any individual/company to step up and propose a PLIP that goes in that direction.
Proposal & Implementation
Deliverables
- CMFCore branch
- CMFPlone branch
- documentation on how to fix your tests and how the new functionality benefits Plone
- collective.solr branch (as is collective.indexing main consumer)
- new release of collective.indexing with deprecation warnings
Risks
Some tests of 3th party packages can fail, but are easy to fix, with the processing_queue function which will be provided.
Participants
Gil Forcada
Maik Derstappen
Proposer : Gil Forcada
Seconder : Maik Derstappen
Abstract
Move all functionality on existing packages (
Products.ZCatalog,Products.CMFCoreandProducts.CMFPlone) and apply all monkey patches directly to the packages they belong to, likeProducts.CMFCoreorProducts.Archetypes.Motivation
Using
collective.indexinghas two main benefits:We think they are important and transparent enough that any Plone installation will benefit from it, specially for the performance part, although the pluggable makes even more easier to scale Plone as the site grows.
Assumptions
Some tests in Plone core will need to be updated to work around the indexing optimizations (as tests expect that objects are indexed/reindexed/unindexed right away).
No refactorings will be done on either CMFPlone
CatalogToolnor CMFCoreCatalogToolnor ZCatalogZCatalogbase class (which both CMFPlone and CMFCore override), this cleanup/refactoring is out of scope.We deemed more importantly to get the functionality first in rather than merging the catalog tools together. At the same time we encourage any individual/company to step up and propose a PLIP that goes in that direction.
Proposal & Implementation
Deliverables
Risks
Some tests of 3th party packages can fail, but are easy to fix, with the processing_queue function which will be provided.
Participants
Gil Forcada
Maik Derstappen