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

Vladimir Pligin updated IGNITE-22506:
-------------------------------------
    Description: 
Currently there is no equivalent for cache.size().

The only way to get the size is 
{code:java}
select count(*) from table {code}
And this is a is slow operation as it scans the entire dataset.

Initially we should start by providing an eventually-consistent size 
table.sizeEstimate() It needs to be the true size under no load, and it can 
kind of show whatever under load. It is NOT a transactional method. We might 
even forbid to call it in a transactional context.

For SQL, let's at least make sure that count can execute over the index without 
reading the actual data. This would be a useful optimization for many cases and 
should give a semi-reasonable performance for both RW and RO.

I think it's also possible to delegate select count from table to 
table.sizeEstimate() when it isn't in an explicit transaction.

  was:
Currently there is no equivalent for `cache.size()`.

The only way to get the size is 
{{}}
{code:java}
select count(*) from table {code}
{{{}{}}}And this is a is slow operation as it scans the entire dataset.

Initially we should start by providing an eventually-consistent size 
table.sizeEstimate() It needs to be the true size under no load, and it can 
kind of show whatever under load. It is NOT a transactional method. We might 
even forbid to call it in a transactional context.

For SQL, let's at least make sure that count(*) can execute over the index 
without reading the actual data. This would be a useful optimization for many 
cases and should give a semi-reasonable performance for both RW and RO.

I think it's also possible to delegate select count(*) from table to 
table.sizeEstimate() when it isn't in an explicit transaction.


> Table size can be useful in many ways including SQL planning. Also users 
> expect to have such an API exposed to them.
> --------------------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-22506
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22506
>             Project: Ignite
>          Issue Type: Epic
>            Reporter: Vladimir Pligin
>            Priority: Major
>
> Currently there is no equivalent for cache.size().
> The only way to get the size is 
> {code:java}
> select count(*) from table {code}
> And this is a is slow operation as it scans the entire dataset.
> Initially we should start by providing an eventually-consistent size 
> table.sizeEstimate() It needs to be the true size under no load, and it can 
> kind of show whatever under load. It is NOT a transactional method. We might 
> even forbid to call it in a transactional context.
> For SQL, let's at least make sure that count can execute over the index 
> without reading the actual data. This would be a useful optimization for many 
> cases and should give a semi-reasonable performance for both RW and RO.
> I think it's also possible to delegate select count from table to 
> table.sizeEstimate() when it isn't in an explicit transaction.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to