[ https://issues.apache.org/jira/browse/PHOENIX-5709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kadir OZDEMIR updated PHOENIX-5709: ----------------------------------- Attachment: PHOENIX-5709.4.x-HBase-1.3.005.patch > Simplify index update generation code for consistent global indexes > ------------------------------------------------------------------- > > Key: PHOENIX-5709 > URL: https://issues.apache.org/jira/browse/PHOENIX-5709 > Project: Phoenix > Issue Type: Improvement > Affects Versions: 5.0.0, 4.14.3 > Reporter: Kadir OZDEMIR > Assignee: Kadir OZDEMIR > Priority: Major > Fix For: 5.0.0, 4.14.3 > > Attachments: PHOENIX-5709.4.x-HBase-1.3.001.patch, > PHOENIX-5709.4.x-HBase-1.3.002.patch, PHOENIX-5709.4.x-HBase-1.3.003.patch, > PHOENIX-5709.4.x-HBase-1.3.004.patch, PHOENIX-5709.4.x-HBase-1.3.005.patch, > PHOENIX-5709.master.001.patch, PHOENIX-5709.master.002.patch, > PHOENIX-5709.master.003.patch, PHOENIX-5709.master.004.patch, > PHOENIX-5709.master.005.patch, PHOENIX-5709.master.006.patch, > PHOENIX-5709.master.007.patch, PHOENIX-5709.master.008.patch, > PHOENIX-5709.master.009.patch, PHOENIX-5709.master.010.patch > > Time Spent: 6h 50m > Remaining Estimate: 0h > > The implementation of the new global index design by PHOENIX-5156 essentially > introduced two coprocessors, IndexRegionObserver and GlobalIndexChecker. > IndexRegionObserver is the counterpart of the existing Indexer coprocessor > that the previous global indexing feature uses. It implements the indexing > write path. GlobalIndexChecker implements the read verification and read > repair that happens on the read path. One of the main objectives of the > design behind new global indexing was to leverage as much existing indexing > code as possible. This objective has been achieved greatly as the entire > index table update generation code implemented by various classes (including > PhoenixIndexBuilder, CachedLocalTable, NonTxIndexBuilder, IndexUpdateManager, > LocalTableState, ScannerBuilder, IndexMemStore and PhoenixIndexCodec) is > leveraged as it is mainly. This objective has served us well to deliver the > new indexing feature quickly. The leveraged code is very complex, over > engineered, and inefficient, and is not bug free. It is very hard to > maintain. It is time to replace the complex set of classes with something > drastically simpler and more efficient for the new design. -- This message was sent by Atlassian Jira (v8.3.4#803005)