A base class for gps device that can parallel the index operation.
When the device starts up, the
AbstractParallelGpsDevice.doGetIndexEntities() callback
is called (should be implemented by sub classes) in order to get the
org.compass.gps.device.support.parallel.IndexEntity ies. The
org.compass.gps.device.support.parallel.IndexEntitiesPartitioner is
then used in order to partition the index entities into several groups
that can be parallel indexed. An
org.compass.gps.device.support.parallel.IndexEntitiesIndexer is also obtained using the
AbstractParallelGpsDevice.doGetIndexEntitiesIndexer() that can
index entities into the search engine and is provided by sub classes as well.
The
org.compass.gps.device.support.parallel.IndexEntitiesPartitioner defaults to the
org.compass.gps.device.support.parallel.SubIndexIndexEntitiesPartitioner that partition the index entities based on the sub index. This is the only meanigful
way to partition the index entities, as it allows for the best concurrent support
(locking is performed on the sub index level).
The
AbstractParallelGpsDevice.index() operation uses the
org.compass.gps.device.support.parallel.ParallelIndexExecutor in order to execute the indexing process. The default implementation used is
org.compass.gps.device.support.parallel.ConcurrentParallelIndexExecutor .
author: kimchy |