GitHub user ravipesala opened a pull request:

    https://github.com/apache/carbondata/pull/2823

    [CARBONDATA-3015]  Support Lazy load in carbon vector

    This PR depends on PR https://github.com/apache/carbondata/pull/2822
    
    Even though we prune the pages as per min/max there is a high chance of 
false positives in case of filters on high cardinality columns. So to avoid 
that we can use the lazy loading design. It does not read/decompresses data and 
fill the vector immediately when the call comes for data filling from 
spark/presto.
    First only reads the required filter columns give back to execution engine, 
execution engine starts filtering on the filtered column vector and if it finds 
some data need to be read from projection columns then only it starts reads the 
projection columns and fills the vector on demand. It is the concept of presto 
and same is integrated with spark 2.3. Older versions of spark cannot use this 
advantage as ColumnVector interfaces are non-extendable.
    For the above purpose added new classes 'LazyBlockletLoad' and 
'LazyPageLoad' and changed the carbon vector interfaces.
    
    
    Be sure to do all of the following checklist to help us incorporate 
    your contribution quickly and easily:
    
     - [ ] Any interfaces changed?
     
     - [ ] Any backward compatibility impacted?
     
     - [ ] Document update required?
    
     - [ ] Testing done
            Please provide details on 
            - Whether new unit test cases have been added or why no new tests 
are required?
            - How it is tested? Please attach test report.
            - Is it a performance related change? Please attach the performance 
test report.
            - Any additional information to help reviewers in testing this 
change.
           
     - [ ] For large changes, please consider breaking it into sub-tasks under 
an umbrella JIRA. 
    


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/ravipesala/incubator-carbondata perf-lazy-load

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/carbondata/pull/2823.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2823
    
----
commit 5443ce85a91c4ce28454d73699d62ef47255a845
Author: ravipesala <ravi.pesala@...>
Date:   2018-10-16T05:02:18Z

    Add carbon property to configure vector based row pruning push down

commit d024ccac82979a908a643b7198ba1f80d9c08e91
Author: ravipesala <ravi.pesala@...>
Date:   2018-10-16T06:00:43Z

    Added support for full scan queries for vector direct fill.

commit 77203f344dbe9dca8ce2697a0dbc364bb8a01cdc
Author: ravipesala <ravi.pesala@...>
Date:   2018-10-16T09:23:14Z

    Added support for pruning pages for vector direct fill.

commit 46578850c5c02c4927da32efe7a1df27cfe2ebd1
Author: ravipesala <ravi.pesala@...>
Date:   2018-10-16T11:07:18Z

    Added support for inverted index and delete delta for direct scan queries

commit b08c254280198fbbcb41361c7b32a9eb51cf8473
Author: ravipesala <ravi.pesala@...>
Date:   2018-10-16T13:09:16Z

    Support Lazy load in carbon vector

----


---

Reply via email to