Guys, If a memory region is not expandable can we calculate the size of the default one automatically rather than setting it to predefined value like 1 GB, 512 MB, etc. ?
For instance, when a node is being started it finds out how much RAM is available and requests 70-80% of it for the default memory region usage. This should help us avoid this usability issue caused by the fact that we hard code the size. — Denis > On Apr 17, 2017, at 2:24 PM, Dmitriy Setrakyan <dsetrak...@apache.org> wrote: > > Sergey, > > What prevents us from making MemoryPolicy expandable? For example, why not > allocate another 1GB, when user runs out of memory? In my view, this would > make our memory policies a lot more usable. > > D. > > On Mon, Apr 17, 2017 at 2:42 AM, Sergey Chugunov <sergey.chugu...@gmail.com> > wrote: > >> Hello Denis, >> >> There is a small piece of documentation in *MemoryConfiguration *class, >> although I think it should be moved to *MemoryPolicyConfiguration *and >> detailed a lot. >> >> I'm going to write some documentation soon about validation rules that are >> applied to memory policies configuration (there are some restrictions about >> reserved name, default memory policy name and so on). I'll let you know >> when it is done. >> >> About your question: MemoryPolicy offheap regions were never supposed to be >> expandable. If user uses default MemoryPolicy (which in fact doesn't have >> any eviction algorithm configured) he/she will get OutOfMemory error when >> default size is exhausted. >> >> This OOM behavior was left intentionally to be consistent with the previous >> behavior as configuring some default eviction policy on default >> MemoryPolicy may lead to data loss and it is better to communicate wrong >> memory configuration to user even with OOM than silently drop some cached >> values. >> >> Thanks, >> Sergey. >> >> On Mon, Apr 17, 2017 at 12:01 AM, Denis Magda <dma...@apache.org> wrote: >> >>> Guys, >>> >>> I’ve been working on the documentation for page memory [1]. The doc is >>> still in progress and it will be more profound with code snippets and >>> pictures int the end, so don’t pay to the fact that it mostly consists of >>> dry text only. >>> >>> So, the question is different. Presently, javadoc part is useless (and >>> will be written by me as well) and it’s not clear what’s the default >>> behavior of the page memory that has only one memory policy (default) >> that >>> instantiates a single memory region. Looking at the code I see that the >>> default police creates 1 GB region that should be expandable because the >>> policy doesn’t define an eviction algorithm. It means that if my app goes >>> beyond 1 GB then the page memory will take more memory from an OS. Is my >>> understanding correct? >>> >>> [1] https://apacheignite.readme.io/docs/page-memory < >>> https://apacheignite.readme.io/docs/page-memory> >>> >>> — >>> Denis >>