Folks,

I've checked memory allocation. It looks like we are allocating memory only
on the first exchange future init on local join occurs on node. Also, seems
like we are allocating only the first chunk of memory (not the whole bunch)
and it calculates as:

Math.max((maxSize - startSize) / (SEG_CNT - 1), 256L * 1024 * 1024)

But, I'm agree with Val. It's better to allocate memory only when when
the first cache assigned to this region.



Also, It seems like we have some problem with user notification about
available
physical resources. For client nodes method requiredOffheap() returns always
zero [1]. That's why WARN message shown here [2] would be not not quite
right
if we have a lot of client nodes in cluster.


[1]
https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java#L1501
[2]
https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java#L1489

сб, 21 июл. 2018 г. в 14:15, Dmitriy Setrakyan <dsetrak...@apache.org>:

> On Sat, Jul 21, 2018 at 5:22 AM, Valentin Kulichenko <
> valentin.kuliche...@gmail.com> wrote:
>
> > Actually, I would go even further: only allocate a data region on a node
> > when the first cache assigned to this region is deployed on that node.
> > Because issue is broader than client nodes and local caches. One can have
> > server nodes without any caches as well - running only services, for
> > example.
> >
>
> It would be great if this was possible, but to my knowledge, regions need
> to be allocated on startup.
>
> Alexey Goncharuk, do you have any suggestions on this?
>
> D.
>
-- 
--
Maxim Muzafarov

Reply via email to