[ 
https://issues.apache.org/jira/browse/IGNITE-6079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Ozerov updated IGNITE-6079:
------------------------------------
    Fix Version/s:     (was: 2.2)

> SQL: implement base table statistics
> ------------------------------------
>
>                 Key: IGNITE-6079
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6079
>             Project: Ignite
>          Issue Type: Task
>          Components: sql
>    Affects Versions: 2.1
>            Reporter: Vladimir Ozerov
>              Labels: performance
>
> Ignite lacks cost-based optimizer what doesn't allow us to build efficient 
> execution plans. Let's start moving in this direction.
> The ticket is about creating local statistics for tables. In the first phase 
> they will not be shared between nodes, neither they will participate in query 
> optimization. The ultimate goal of this ticket is to start gathering some 
> info in the background and provide necessary internal infrastructure and APIs 
> for that.
> *1. API*
> Let's start with a single method {{GridQueryProcessor.rebuildStatistics()}}, 
> which will build stats for all existing tables.
> *2. Infrastructure*
> - Statistics are transient, not persisted
> - We need a background worker which will re-build them on regular basis and 
> replace old with new using copy-on-write approach
> - Statistics are created for indexed (i.e. sorted) columns 
> - Sampling should be used to avoid full table scan
> *3. Statistics types*
> - Height-based: the whole range is split into N pieces, so that exactly M/N 
> entries are located between X and X+1 piece, where M is number of records
> One statistics type should be enough in the first iteration.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to