You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2017/11/10 09:39:00 UTC

[jira] [Commented] (IGNITE-6702) Get rid of values deserialization in H2TreeIndex.getRowCount

    [ https://issues.apache.org/jira/browse/IGNITE-6702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16247270#comment-16247270 ] 

Vladimir Ozerov commented on IGNITE-6702:
-----------------------------------------

The optimization is not applicable in general case due to backups and upcoming MVCC feature. However, we can do the following:
1) If cache is {{LOCAL}}/{{REPLICATED}}/{{PARTITIIONED(backups=0}} and MVCC is disabled - just call {{BPlusTree.size()}}
2) Otherwise - let's implement new cursor type which will count rows based on some predicate (see last argument in {{BPlusTree#find(L, L, java.lang.Object)}}) possibly avoiding deserialization.

> Get rid of values deserialization in H2TreeIndex.getRowCount
> ------------------------------------------------------------
>
>                 Key: IGNITE-6702
>                 URL: https://issues.apache.org/jira/browse/IGNITE-6702
>             Project: Ignite
>          Issue Type: Improvement
>      Security Level: Public(Viewable by anyone) 
>          Components: sql
>            Reporter: Semen Boikov
>              Labels: performance
>             Fix For: 2.4
>
>
> It seems H2TreeIndex.getRowCount is called for 'select count(*) from x' queries, now it is implemented via BPlusTree.find(x, x) method which deserializes all values. Actually values are not needed there, need implement method on BPlusTree computing size without deserialization.



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