Maxim, thank you.

If it seems it is technically possible, we can file ticket for this change.

I find this proposal reasonable, change makes perfectly sense to me.

We can wait Alex G. feedback on this change before starting actual
implementation. It can take for a while, because he is travelling now.

пт, 27 июл. 2018 г. в 14:35, Maxim Muzafarov <maxmu...@gmail.com>:

> Guys,
>
> I can miss some details, but at the first glance we have everething we need
> to defer
> region memory allocation if it has no cache groups assignments. And it
> doesn't matter
> where it happens on client or server nodes.
>
> Currently region memory allocation happens at exchange future init method.
> At the
> node startup method initCachesOnLocalJoin executes. This method resposnible
> for
> memory allocation (through initiating cache managers) and it also starts
> caches.
> So, at this point we have all existing caches descriptors and can find out
> which
> cache matches which region to defer some regions initialization to the
> moment when
> newly cache assings to this region (happend at onCacheChangeRequest).
>
> Please, сorrect me if I'm wrong and missing something.
>
>
>
> On Wed, 25 Jul 2018 at 19:32 Dmitry Pavlov <dpavlov....@gmail.com> wrote:
>
> > Hi Maxim,
> >
> > thank you for stepping in. How do you think, is it possible to check
> cache
> > assignment to region at stage of memory allocation?
> >
> > Sincerely,
> > Dmitriy Pavlov
> >
> > ср, 25 июл. 2018 г. в 18:22, Maxim Muzafarov <maxmu...@gmail.com>:
> >
> > > 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
> > >
> >
> --
> --
> Maxim Muzafarov
>

Reply via email to