Hello!

1. I don't think data will be held in heap at once on server nodes. You
will not have pagination on client since you forfeit it by doing getAll(),
but server nodes will still do this in memory-safe fashion.
2. I think server nodes will only hold locks very briefly. ScanQuery is
fire and forget, so entries are released as soon as they are sent to client.
3. Why?
4. On ScanQuery it should not noticeably block anything.

Regards,
-- 
Ilya Kasnacheev


ср, 6 февр. 2019 г. в 04:45, Ariel Tubaltsev <[email protected]>:

> Hi
>
> I'm reading through forum threads, trying to grasp the getAll behaviour.
> Also could be useful to know if there were any changes in recent versions.
>
> Let's say I have a client running query like
> cache.query(new ScanQuery<K,V>()).getAll() on cache in transactional mode
> with pessimistic locking.
>
> My understanding is that there is no pagination, whole query result will be
> fetched and placed in collection.
> On the server nodes, the whole query result will be fetched from off-heap
> cache and placed in heap, then transmitted as a whole. On the server nodes,
> locks will be taken in batches and released once data is loaded in-heap.
>
> 1. Is it correct?
> 2. When using cursor, what changes in terms of pagination, batch size, lock
> acquisition?
> 3. Is there a way to control lock batch size?
> 4. getAll shouldn't block insert transaction, and shouldn't block more then
> single batch of keys for updates and deletes?
>
> Thank you
> Ariel
>
>
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Reply via email to