Folks,

I filed a ticket [1] to address the concern of starting too many nodes.
Please review it.

[1] https://issues.apache.org/jira/browse/IGNITE-6003

Thanks,
Sergey.

On Mon, Aug 7, 2017 at 12:53 PM, Sergey Chugunov <sergey.chugu...@gmail.com>
wrote:

> Dmitriy,
>
> When Ignite node "allocates memory" it actually just reserves a chunk in
> its address space, almost no physical RAM is used.
>
> I can easily start half a dozen of ignite nodes with current defaults on
> my laptop with only 16 Gigs of RAM; and each node will "allocate" around 12
> Gigs; 72 gigabytes in total.
> The laptop will do easily with it so far I don't stream any data to the
> grid.
>
> But when I put some pressure to the grid, massive swapping of memory pages
> will show up as OS begins trying to keep a huge amount of pages of
> different processes in memory.
>
> So indicator "we are running out of memory" just doesn't work here.
>
> Thanks,
> Sergey.
>
> On Fri, Aug 4, 2017 at 1:01 PM, <dsetrak...@apache.org> wrote:
>
>> But why? We allocate the memory, so we should know when it runs out. What
>> am i missing?
>>
>> ⁣D.​
>>
>> On Aug 4, 2017, 11:55 AM, at 11:55 AM, Sergey Chugunov <
>> sergey.chugu...@gmail.com> wrote:
>> >I used GC and java only as an example, they are not applicable to
>> >Ignite
>> >case where we manage offheap memory.
>> >
>> >My point is that there is no easy way to implement this feature in
>> >Ignite,
>> >and more time is needed to properly design it and account for all
>> >risks.
>> >
>> >Thanks,
>> >Sergey.
>> >
>> >On Fri, Aug 4, 2017 at 12:44 PM, <dsetrak...@apache.org> wrote:
>> >
>> >> Hang on. I thought we were talking about offheap size, GC should not
>> >be
>> >> relevant. Am I wrong?
>> >>
>> >> ⁣D.​
>> >>
>> >> On Aug 4, 2017, 11:38 AM, at 11:38 AM, Sergey Chugunov <
>> >> sergey.chugu...@gmail.com> wrote:
>> >> >Do you see an obvious way of implementing it?
>> >> >
>> >> >In java there is a heap and GC working on it. And for instance, it
>> >is
>> >> >possible to make a decision to throw an OOM based on some gc
>> >metrics.
>> >> >
>> >> >I may be wrong but I don't see a mechanism in Ignite to use it right
>> >> >away
>> >> >for such purposes.
>> >> >And implementing something without thorough planning brings huge
>> >risk
>> >> >of
>> >> >false positives with nodes stopping when they don't have to.
>> >> >
>> >> >That's why I think it must be implemented and intensively tested as
>> >> >part of
>> >> >a separate ticket.
>> >> >
>> >> >Thanks,
>> >> >Sergey.
>> >> >
>> >> >On Fri, Aug 4, 2017 at 12:18 PM, <dsetrak...@apache.org> wrote:
>> >> >
>> >> >> Without #3, the #1 and #2 make little sense.
>> >> >>
>> >> >> Why is #3 so difficult?
>> >> >>
>> >> >> ⁣D.​
>> >> >>
>> >> >> On Aug 4, 2017, 10:46 AM, at 10:46 AM, Sergey Chugunov <
>> >> >> sergey.chugu...@gmail.com> wrote:
>> >> >> >Dmitriy,
>> >> >> >
>> >> >> >Last item makes perfect sense to me, one may think of it as an
>> >> >> >"OutOfMemoryException" in java.
>> >> >> >However, it looks like such feature requires considerable efforts
>> >to
>> >> >> >properly design and implement it, so I would propose to create a
>> >> >> >separate
>> >> >> >ticket and agree upon target version for it.
>> >> >> >
>> >> >> >Items #1 and #2 will be implemented under IGNITE-5717. Makes
>> >sense?
>> >> >> >
>> >> >> >Thanks,
>> >> >> >Sergey.
>> >> >> >
>> >> >> >On Thu, Aug 3, 2017 at 4:34 AM, Dmitriy Setrakyan
>> >> >> ><dsetrak...@apache.org>
>> >> >> >wrote:
>> >> >> >
>> >> >> >> Here is what we should do:
>> >> >> >>
>> >> >> >>    1. Pick an acceptable number. Does not matter if it is 10%
>> >or
>> >> >50%.
>> >> >> >>    2. Print the allocated memory in *BOLD* letters into the
>> >log.
>> >> >> >>    3. Make sure that Ignite server never hangs due to the low
>> >> >memory
>> >> >> >issue.
>> >> >> >>    We should sense it and kick the node out automatically,
>> >again
>> >> >with
>> >> >> >a
>> >> >> >> *BOLD*
>> >> >> >>    message in the log.
>> >> >> >>
>> >> >> >>  Is this possible?
>> >> >> >>
>> >> >> >> D.
>> >> >> >>
>> >> >> >> On Wed, Aug 2, 2017 at 6:09 PM, Vladimir Ozerov
>> >> >> ><voze...@gridgain.com>
>> >> >> >> wrote:
>> >> >> >>
>> >> >> >> > My proposal is 10% instead of 80%.
>> >> >> >> >
>> >> >> >> > ср, 2 авг. 2017 г. в 18:54, Denis Magda <dma...@apache.org>:
>> >> >> >> >
>> >> >> >> > > Vladimir, Dmitriy P.,
>> >> >> >> > >
>> >> >> >> > > Please see inline
>> >> >> >> > >
>> >> >> >> > > > On Aug 2, 2017, at 7:20 AM, Vladimir Ozerov
>> >> >> ><voze...@gridgain.com>
>> >> >> >> > > wrote:
>> >> >> >> > > >
>> >> >> >> > > > Denis,
>> >> >> >> > > >
>> >> >> >> > > > The reason is that product should not hang user's
>> >computer.
>> >> >How
>> >> >> >else
>> >> >> >> > this
>> >> >> >> > > > could be explained? I am developer. I start Ignite, 1
>> >node,
>> >> >2
>> >> >> >nodes,
>> >> >> >> X
>> >> >> >> > > > nodes, observe how they join topology. Add one key, 10
>> >keys,
>> >> >1M
>> >> >> >keys.
>> >> >> >> > > Then
>> >> >> >> > > > I do a bug in example and load 100M keys accidentally -
>> >> >restart
>> >> >> >the
>> >> >> >> > > > computer. Correct behavior is to have small "maxMemory"
>> >by
>> >> >> >default to
>> >> >> >> > > avoid
>> >> >> >> > > > that. User should get exception instead of hang. E.g.
>> >Java's
>> >> >> >"-Xmx"
>> >> >> >> is
>> >> >> >> > > > typically 25% of RAM - more adequate value, comparing to
>> >> >> >Ignite.
>> >> >> >> > > >
>> >> >> >> > >
>> >> >> >> > > Right, the developer was educated about the Java heap
>> >> >parameters
>> >> >> >and
>> >> >> >> > > limited the overall space preferring OOM to the laptop
>> >> >> >suspension. Who
>> >> >> >> > > knows how he got to the point that 25% RAM should be used.
>> >> >That
>> >> >> >might
>> >> >> >> > have
>> >> >> >> > > been deep knowledge about JVM or he faced several hangs
>> >while
>> >> >> >testing
>> >> >> >> the
>> >> >> >> > > application.
>> >> >> >> > >
>> >> >> >> > > Anyway, JVM creators didn’t decide to predefine the Java
>> >heap
>> >> >to
>> >> >> >a
>> >> >> >> static
>> >> >> >> > > value to avoid the situations like above. So should not we
>> >as
>> >> >a
>> >> >> >> platform.
>> >> >> >> > > Educate people about the Ignite memory behavior like Sun
>> >did
>> >> >for
>> >> >> >the
>> >> >> >> Java
>> >> >> >> > > heap but do not try to solve the lack of knowledge with the
>> >> >> >default
>> >> >> >> > static
>> >> >> >> > > memory size.
>> >> >> >> > >
>> >> >> >> > >
>> >> >> >> > > > It doesn't matter whether you use persistence or not.
>> >> >> >Persistent case
>> >> >> >> > > just
>> >> >> >> > > > makes this flaw more obvious - you have virtually
>> >unlimited
>> >> >> >disk, and
>> >> >> >> > yet
>> >> >> >> > > > you end up with swapping and hang when using Ignite with
>> >> >> >default
>> >> >> >> > > > configuration. As already explained, the problem is not
>> >> >about
>> >> >> >> > allocating
>> >> >> >> > > > "maxMemory" right away, but about the value of
>> >"maxMemory" -
>> >> >it
>> >> >> >is
>> >> >> >> too
>> >> >> >> > > big.
>> >> >> >> > > >
>> >> >> >> > >
>> >> >> >> > > How do you know what should be the default then? Why 1 GB?
>> >For
>> >> >> >> instance,
>> >> >> >> > > if I end up having only 1 GB of free memory left and try to
>> >> >start
>> >> >> >2
>> >> >> >> > server
>> >> >> >> > > nodes and an application I will face the laptop suspension
>> >> >again.
>> >> >> >> > >
>> >> >> >> > > —
>> >> >> >> > > Denis
>> >> >> >> > >
>> >> >> >> > > > "We had this behavior before" is never an argument.
>> >Previous
>> >> >> >offheap
>> >> >> >> > > > implementation had a lot of flaws, so let's just forget
>> >> >about
>> >> >> >it.
>> >> >> >> > > >
>> >> >> >> > > > On Wed, Aug 2, 2017 at 5:08 PM, Denis Magda
>> >> ><dma...@apache.org>
>> >> >> >> wrote:
>> >> >> >> > > >
>> >> >> >> > > >> Sergey,
>> >> >> >> > > >>
>> >> >> >> > > >> That’s expectable because as we revealed from this
>> >> >discussion
>> >> >> >the
>> >> >> >> > > >> allocation works different depending on whether the
>> >> >> >persistence is
>> >> >> >> > used
>> >> >> >> > > or
>> >> >> >> > > >> not:
>> >> >> >> > > >>
>> >> >> >> > > >> 1) In-memory mode (the persistence is disabled) - the
>> >space
>> >> >> >will be
>> >> >> >> > > >> allocated incrementally until the max threshold is
>> >reached.
>> >> >> >Good!
>> >> >> >> > > >>
>> >> >> >> > > >> 2) The persistence mode - the whole space (limited by
>> >the
>> >> >max
>> >> >> >> > threshold)
>> >> >> >> > > >> is allocated right away. It’s not surprising that your
>> >> >laptop
>> >> >> >starts
>> >> >> >> > > >> choking.
>> >> >> >> > > >>
>> >> >> >> > > >> So, in my previous response I tried to explain that I
>> >can’t
>> >> >> >find any
>> >> >> >> > > >> reason why we should adjust 1). Any reasons except for
>> >the
>> >> >> >massive
>> >> >> >> > > >> preloading?
>> >> >> >> > > >>
>> >> >> >> > > >> As for 2), that was a big surprise to reveal this after
>> >2.1
>> >> >> >release.
>> >> >> >> > > >> Definitely we have to fix this somehow.
>> >> >> >> > > >>
>> >> >> >> > > >> —
>> >> >> >> > > >> Denis
>> >> >> >> > > >>
>> >> >> >> > > >>> On Aug 2, 2017, at 6:59 AM, Sergey Chugunov <
>> >> >> >> > sergey.chugu...@gmail.com
>> >> >> >> > > >
>> >> >> >> > > >> wrote:
>> >> >> >> > > >>>
>> >> >> >> > > >>> Denis,
>> >> >> >> > > >>>
>> >> >> >> > > >>> Just a simple example from our own codebase: I tried to
>> >> >> >execute
>> >> >> >> > > >>> PersistentStoreExample with default settings and two
>> >> >server
>> >> >> >nodes
>> >> >> >> and
>> >> >> >> > > >>> client node got frozen even on initial load of data
>> >into
>> >> >the
>> >> >> >grid.
>> >> >> >> > > >>> Although with one server node the example finishes
>> >pretty
>> >> >> >quickly.
>> >> >> >> > > >>>
>> >> >> >> > > >>> And my laptop isn't the weakest one and has 16 gigs of
>> >> >> >memory, but
>> >> >> >> it
>> >> >> >> > > >>> cannot deal with it.
>> >> >> >> > > >>>
>> >> >> >> > > >>>
>> >> >> >> > > >>> On Wed, Aug 2, 2017 at 4:58 PM, Denis Magda
>> >> >> ><dma...@apache.org>
>> >> >> >> > wrote:
>> >> >> >> > > >>>
>> >> >> >> > > >>>>> As far as allocating 80% of available RAM - I was
>> >> >against
>> >> >> >this
>> >> >> >> even
>> >> >> >> > > for
>> >> >> >> > > >>>>> In-memory mode and still think that this is a wrong
>> >> >> >default.
>> >> >> >> > Looking
>> >> >> >> > > at
>> >> >> >> > > >>>>> free RAM is even worse because it gives you undefined
>> >> >> >behavior.
>> >> >> >> > > >>>>
>> >> >> >> > > >>>> Guys, I can not understand how this dynamic memory
>> >> >> >allocation's
>> >> >> >> > > >> high-level
>> >> >> >> > > >>>> behavior (with the persistence DISABLED) is different
>> >> >from
>> >> >> >the
>> >> >> >> > legacy
>> >> >> >> > > >>>> off-heap memory we had in 1.x. Both off-heap memories
>> >> >> >allocate the
>> >> >> >> > > >> space on
>> >> >> >> > > >>>> demand, the current just does this more aggressively
>> >> >> >requesting
>> >> >> >> big
>> >> >> >> > > >> chunks.
>> >> >> >> > > >>>>
>> >> >> >> > > >>>> Next, the legacy one was unlimited by default and the
>> >> >user
>> >> >> >can
>> >> >> >> start
>> >> >> >> > > as
>> >> >> >> > > >>>> many nodes as he wanted on a laptop and preload as
>> >much
>> >> >data
>> >> >> >as he
>> >> >> >> > > >> needed.
>> >> >> >> > > >>>> Sure he could bring down the laptop if too many
>> >entries
>> >> >were
>> >> >> >> > injected
>> >> >> >> > > >> into
>> >> >> >> > > >>>> the local cluster. But that’s about too massive
>> >> >preloading
>> >> >> >and not
>> >> >> >> > > >> caused
>> >> >> >> > > >>>> by the ability of the legacy off-heap memory to grow
>> >> >> >infinitely.
>> >> >> >> The
>> >> >> >> > > >> same
>> >> >> >> > > >>>> preloading would cause a hang if the Java heap memory
>> >> >mode
>> >> >> >is
>> >> >> >> used.
>> >> >> >> > > >>>>
>> >> >> >> > > >>>> The upshot is that the massive preloading of data on
>> >the
>> >> >> >local
>> >> >> >> > laptop
>> >> >> >> > > >>>> should not fixed with repealing of the dynamic memory
>> >> >> >allocation.
>> >> >> >> > > >>>> Is there any other reason why we have to use the
>> >static
>> >> >> >memory
>> >> >> >> > > >> allocation
>> >> >> >> > > >>>> for the case when the persistence is disabled? I think
>> >> >the
>> >> >> >case
>> >> >> >> with
>> >> >> >> > > the
>> >> >> >> > > >>>> persistence should be reviewed separately.
>> >> >> >> > > >>>>
>> >> >> >> > > >>>> —
>> >> >> >> > > >>>> Denis
>> >> >> >> > > >>>>
>> >> >> >> > > >>>>> On Aug 2, 2017, at 12:45 AM, Alexey Goncharuk <
>> >> >> >> > > >>>> alexey.goncha...@gmail.com> wrote:
>> >> >> >> > > >>>>>
>> >> >> >> > > >>>>> Dmitriy,
>> >> >> >> > > >>>>>
>> >> >> >> > > >>>>> The reason behind this is the need to to be able to
>> >> >evict
>> >> >> >and
>> >> >> >> load
>> >> >> >> > > >> pages
>> >> >> >> > > >>>> to
>> >> >> >> > > >>>>> disk, thus we need to preserve a PageId->Pointer
>> >mapping
>> >> >in
>> >> >> >> memory.
>> >> >> >> > > In
>> >> >> >> > > >>>>> order to do this in the most efficient way, we need
>> >to
>> >> >know
>> >> >> >in
>> >> >> >> > > advance
>> >> >> >> > > >>>> all
>> >> >> >> > > >>>>> the address ranges we work with. We can add dynamic
>> >> >memory
>> >> >> >> > extension
>> >> >> >> > > >> for
>> >> >> >> > > >>>>> persistence-enabled config, but this will add yet
>> >> >another
>> >> >> >step of
>> >> >> >> > > >>>>> indirection when resolving every page address, which
>> >> >adds a
>> >> >> >> > > noticeable
>> >> >> >> > > >>>>> performance penalty.
>> >> >> >> > > >>>>>
>> >> >> >> > > >>>>>
>> >> >> >> > > >>>>>
>> >> >> >> > > >>>>> 2017-08-02 10:37 GMT+03:00 Dmitriy Setrakyan <
>> >> >> >> > dsetrak...@apache.org
>> >> >> >> > > >:
>> >> >> >> > > >>>>>
>> >> >> >> > > >>>>>> On Wed, Aug 2, 2017 at 9:33 AM, Vladimir Ozerov <
>> >> >> >> > > voze...@gridgain.com
>> >> >> >> > > >>>
>> >> >> >> > > >>>>>> wrote:
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>>>> Dima,
>> >> >> >> > > >>>>>>>
>> >> >> >> > > >>>>>>> Probably folks who worked closely with storage know
>> >> >why.
>> >> >> >> > > >>>>>>>
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>>> Without knowing why, how can we make a decision?
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>>> Alexey Goncharuk, was it you who made the decision
>> >> >about
>> >> >> >not
>> >> >> >> using
>> >> >> >> > > >>>>>> increments? Do know remember what was the reason?
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>>>>
>> >> >> >> > > >>>>>>> The very problem is that before being started once
>> >on
>> >> >> >> production
>> >> >> >> > > >>>>>>> environment, Ignite will typically be started
>> >hundred
>> >> >> >times on
>> >> >> >> > > >>>>>> developer's
>> >> >> >> > > >>>>>>> environment. I think that default should be ~10% of
>> >> >total
>> >> >> >RAM.
>> >> >> >> > > >>>>>>>
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>>> Why not 80% of *free *RAM?
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>>>>
>> >> >> >> > > >>>>>>> On Wed, Aug 2, 2017 at 10:21 AM, Dmitriy Setrakyan
>> ><
>> >> >> >> > > >>>>>> dsetrak...@apache.org>
>> >> >> >> > > >>>>>>> wrote:
>> >> >> >> > > >>>>>>>
>> >> >> >> > > >>>>>>>> On Wed, Aug 2, 2017 at 7:27 AM, Vladimir Ozerov <
>> >> >> >> > > >> voze...@gridgain.com
>> >> >> >> > > >>>>>
>> >> >> >> > > >>>>>>>> wrote:
>> >> >> >> > > >>>>>>>>
>> >> >> >> > > >>>>>>>>> Please see original Sergey's message - when
>> >> >persistence
>> >> >> >is
>> >> >> >> > > enabled,
>> >> >> >> > > >>>>>>>> memory
>> >> >> >> > > >>>>>>>>> is not allocated incrementally, maxSize is used.
>> >> >> >> > > >>>>>>>>>
>> >> >> >> > > >>>>>>>>
>> >> >> >> > > >>>>>>>> Why?
>> >> >> >> > > >>>>>>>>
>> >> >> >> > > >>>>>>>>
>> >> >> >> > > >>>>>>>>> Default settings must allow for normal work on
>> >> >> >developer's
>> >> >> >> > > >>>>>> environment.
>> >> >> >> > > >>>>>>>>>
>> >> >> >> > > >>>>>>>>
>> >> >> >> > > >>>>>>>> Agree, but why not in increments?
>> >> >> >> > > >>>>>>>>
>> >> >> >> > > >>>>>>>>
>> >> >> >> > > >>>>>>>>>
>> >> >> >> > > >>>>>>>>> ср, 2 авг. 2017 г. в 1:10, Denis Magda
>> >> >> ><dma...@apache.org>:
>> >> >> >> > > >>>>>>>>>
>> >> >> >> > > >>>>>>>>>>> Why not allocate in increments automatically?
>> >> >> >> > > >>>>>>>>>>
>> >> >> >> > > >>>>>>>>>> This is exactly how the allocation works right
>> >now.
>> >> >> >The
>> >> >> >> memory
>> >> >> >> > > >> will
>> >> >> >> > > >>>>>>>> grow
>> >> >> >> > > >>>>>>>>>> incrementally until the max size is reached (80%
>> >of
>> >> >> >RAM by
>> >> >> >> > > >>>>>> default).
>> >> >> >> > > >>>>>>>>>>
>> >> >> >> > > >>>>>>>>>> —
>> >> >> >> > > >>>>>>>>>> Denis
>> >> >> >> > > >>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>> On Aug 1, 2017, at 3:03 PM,
>> >dsetrak...@apache.org
>> >> >> >wrote:
>> >> >> >> > > >>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>> Vova, 1GB seems a bit too small for me, and
>> >> >frankly i
>> >> >> >do
>> >> >> >> not
>> >> >> >> > > want
>> >> >> >> > > >>>>>>> t o
>> >> >> >> > > >>>>>>>>>> guess. Why not allocate in increments
>> >> >automatically?
>> >> >> >> > > >>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>> ⁣D.​
>> >> >> >> > > >>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>> On Aug 1, 2017, 11:03 PM, at 11:03 PM, Vladimir
>> >> >> >Ozerov <
>> >> >> >> > > >>>>>>>>>> voze...@gridgain.com> wrote:
>> >> >> >> > > >>>>>>>>>>>> Denis,
>> >> >> >> > > >>>>>>>>>>>> No doubts you haven't heard about it - AI 2.1
>> >> >with
>> >> >> >> > > persistence,
>> >> >> >> > > >>>>>>> when
>> >> >> >> > > >>>>>>>>>>>> 80% of
>> >> >> >> > > >>>>>>>>>>>> RAM is allocated right away, was released
>> >several
>> >> >> >days
>> >> >> >> ago.
>> >> >> >> > > How
>> >> >> >> > > >>>>>> do
>> >> >> >> > > >>>>>>>> you
>> >> >> >> > > >>>>>>>>>>>> think, how many users tried it already?
>> >> >> >> > > >>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>> Guys,
>> >> >> >> > > >>>>>>>>>>>> Do you really think allocating 80% of
>> >available
>> >> >RAM
>> >> >> >is a
>> >> >> >> > > normal
>> >> >> >> > > >>>>>>>> thing?
>> >> >> >> > > >>>>>>>>>>>> Take
>> >> >> >> > > >>>>>>>>>>>> your laptop and check how many available RAM
>> >you
>> >> >> >have
>> >> >> >> right
>> >> >> >> > > now.
>> >> >> >> > > >>>>>>> Do
>> >> >> >> > > >>>>>>>>> you
>> >> >> >> > > >>>>>>>>>>>> fit
>> >> >> >> > > >>>>>>>>>>>> to remaining 20%? If not, then running AI with
>> >> >> >persistence
>> >> >> >> > > with
>> >> >> >> > > >>>>>>> all
>> >> >> >> > > >>>>>>>>>>>> defaults will bring your machine down. This is
>> >> >> >insane. We
>> >> >> >> > > shold
>> >> >> >> > > >>>>>>>>>>>> allocate no
>> >> >> >> > > >>>>>>>>>>>> more than 1Gb, so that user can play with it
>> >> >without
>> >> >> >any
>> >> >> >> > > >>>>>> problems.
>> >> >> >> > > >>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>> On Tue, Aug 1, 2017 at 10:26 PM, Denis Magda <
>> >> >> >> > > dma...@apache.org
>> >> >> >> > > >>>>>>>
>> >> >> >> > > >>>>>>>>> wrote:
>> >> >> >> > > >>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>> My vote goes for option #1 too. I don’t think
>> >> >that
>> >> >> >80% is
>> >> >> >> > too
>> >> >> >> > > >>>>>>>>>>>> aggressive
>> >> >> >> > > >>>>>>>>>>>>> to bring it down.
>> >> >> >> > > >>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>> IGNITE-5717 was created to fix the issue of
>> >the
>> >> >80%
>> >> >> >RAM
>> >> >> >> > > >>>>>>> allocation
>> >> >> >> > > >>>>>>>> on
>> >> >> >> > > >>>>>>>>>>>> 64
>> >> >> >> > > >>>>>>>>>>>>> bit systems when Ignite works on top of 32
>> >bit
>> >> >JVM.
>> >> >> >I’ve
>> >> >> >> > not
>> >> >> >> > > >>>>>>> heard
>> >> >> >> > > >>>>>>>> of
>> >> >> >> > > >>>>>>>>>>>> any
>> >> >> >> > > >>>>>>>>>>>>> other complaints in regards the default
>> >> >allocation
>> >> >> >size.
>> >> >> >> > > >>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>> —
>> >> >> >> > > >>>>>>>>>>>>> Denis
>> >> >> >> > > >>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>> On Aug 1, 2017, at 10:58 AM,
>> >> >dsetrak...@apache.org
>> >> >> >> wrote:
>> >> >> >> > > >>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>> I prefer option #1.
>> >> >> >> > > >>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>> ⁣D.​
>> >> >> >> > > >>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>> On Aug 1, 2017, 11:20 AM, at 11:20 AM,
>> >Sergey
>> >> >> >Chugunov <
>> >> >> >> > > >>>>>>>>>>>>> sergey.chugu...@gmail.com> wrote:
>> >> >> >> > > >>>>>>>>>>>>>>> Folks,
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>> I would like to get back to the question
>> >about
>> >> >> >> > MemoryPolicy
>> >> >> >> > > >>>>>>>>>>>> maxMemory
>> >> >> >> > > >>>>>>>>>>>>>>> defaults.
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>> Although MemoryPolicy may be configured
>> >with
>> >> >> >initial
>> >> >> >> and
>> >> >> >> > > >>>>>>>> maxMemory
>> >> >> >> > > >>>>>>>>>>>>>>> settings, when persistence is used
>> >> >MemoryPolicy
>> >> >> >always
>> >> >> >> > > >>>>>>> allocates
>> >> >> >> > > >>>>>>>>>>>>>>> maxMemory
>> >> >> >> > > >>>>>>>>>>>>>>> size for performance reasons.
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>> As default size of maxMemory is 80% of
>> >> >physical
>> >> >> >memory
>> >> >> >> it
>> >> >> >> > > >>>>>>> causes
>> >> >> >> > > >>>>>>>>>>>> OOME
>> >> >> >> > > >>>>>>>>>>>>>>> exceptions of 32 bit platforms (either on
>> >OS
>> >> >or
>> >> >> >JVM
>> >> >> >> > level)
>> >> >> >> > > >>>>>> and
>> >> >> >> > > >>>>>>>>>>>> hurts
>> >> >> >> > > >>>>>>>>>>>>>>> performance in setups when multiple Ignite
>> >> >nodes
>> >> >> >are
>> >> >> >> > > started
>> >> >> >> > > >>>>>> on
>> >> >> >> > > >>>>>>>>>>>> the
>> >> >> >> > > >>>>>>>>>>>>>>> same
>> >> >> >> > > >>>>>>>>>>>>>>> physical server.
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>> I suggest to rethink these defaults and
>> >switch
>> >> >to
>> >> >> >other
>> >> >> >> > > >>>>>>> options:
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>> - Check whether platform is 32 or 64 bits
>> >and
>> >> >> >adapt
>> >> >> >> > > defaults.
>> >> >> >> > > >>>>>>> In
>> >> >> >> > > >>>>>>>>>>>> this
>> >> >> >> > > >>>>>>>>>>>>>>> case we still need to address the issue
>> >with
>> >> >> >multiple
>> >> >> >> > nodes
>> >> >> >> > > >>>>>> on
>> >> >> >> > > >>>>>>>> one
>> >> >> >> > > >>>>>>>>>>>>>>> machine
>> >> >> >> > > >>>>>>>>>>>>>>> even on 64 bit systems.
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>> - Lower defaults for maxMemory and
>> >allocate,
>> >> >for
>> >> >> >> > instance,
>> >> >> >> > > >>>>>>>>>>>> max(0.3 *
>> >> >> >> > > >>>>>>>>>>>>>>> availableMemory, 1Gb).
>> >> >> >> > > >>>>>>>>>>>>>>> This option allows us to solve all issues
>> >with
>> >> >> >starting
>> >> >> >> > on
>> >> >> >> > > 32
>> >> >> >> > > >>>>>>> bit
>> >> >> >> > > >>>>>>>>>>>>>>> platforms and reduce instability with
>> >multiple
>> >> >> >nodes on
>> >> >> >> > the
>> >> >> >> > > >>>>>>> same
>> >> >> >> > > >>>>>>>>>>>>>>> machine.
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>> Thoughts and/or other options?
>> >> >> >> > > >>>>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>>> Thanks,
>> >> >> >> > > >>>>>>>>>>>>>>> Sergey.
>> >> >> >> > > >>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>
>> >> >> >> > > >>>>>>>>>>
>> >> >> >> > > >>>>>>>>>
>> >> >> >> > > >>>>>>>>
>> >> >> >> > > >>>>>>>
>> >> >> >> > > >>>>>>
>> >> >> >> > > >>>>
>> >> >> >> > > >>>>
>> >> >> >> > > >>
>> >> >> >> > > >>
>> >> >> >> > >
>> >> >> >> > >
>> >> >> >> >
>> >> >> >>
>> >> >>
>> >>
>>
>
>

Reply via email to