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

Yuriy Shuliha  commented on IGNITE-12189:
-----------------------------------------

On behalf of [~amashenkov] 
>>>
I've found GridCacheQueryFutureAdapter has newly added AtomicInteger
'total' field and 'limit; field as primitive int.

Both fields are used inside synchronized block only.
So, we can make both private and downgrade AtomicInteger to primitive int.

Most likely, these fields can be replaced with one field.
>>>

> Implement correct limit for TextQuery
> -------------------------------------
>
>                 Key: IGNITE-12189
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12189
>             Project: Ignite
>          Issue Type: Improvement
>          Components: general
>            Reporter: Yuriy Shuliha 
>            Assignee: Yuriy Shuliha 
>            Priority: Major
>             Fix For: 2.8
>
>          Time Spent: 2h 50m
>  Remaining Estimate: 0h
>
> PROBLEM
> For now each server-node returns all response records to the client-node and 
> it may contain ~thousands, ~hundred thousands records.
>  Event if we need only first 10-100. Again, all the results are added to 
> queue in _*GridCacheQueryFutureAdapter*_ in arbitrary order by pages.
>  There are no any means to deliver deterministic result.
> SOLUTION
>  Implement _*limit*_ as parameter for _*TextQuery*_ and 
> _*GridCacheQueryRequest*_ 
>  It should be passed as limit  parameter in Lucene's  
> _*IndexSearcher.search()*_ in _*GridLuceneIndex*_.
> For distributed queries _*limit*_ will also trim response queue when merging 
> results.
> Type: long
>  Special value: : 0 -> No limit (Integer.MAX_VALUE);



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to