[ 
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.master.012.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, 
> PHOENIX-5709.master.011.patch, PHOENIX-5709.master.012.patch
>
>          Time Spent: 8h 20m
>  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)

Reply via email to