Thanks! It was unclear for me. On Sun, Jul 14, 2019, 10:59 AM Павлухин Иван <[email protected]> wrote:
> Andrey, > > Yes it is a little bit complicated for understanding. > > CacheConfiguration.evictionPolicy takes it roots back in history where > there were neither offheap nor persisence, cache data was stored in > java heap only. Also, as far as I know, today > CacheConfiguration.evictionPolicy (as already mentioned) works only > when onheap caching is enabled and an entry is still available in > offheap after it was evicted from onheap. And it worth noting (correct > me if I am wrong) that data is NOT buffered in onheap and then written > to offheap on eviction but written to both places on each writing > operation. So, I expect that onheap caching can speedup only read > operations. > > DataRegionConfiguration.pageEvictionMode is a different thing (similar > naming brings confusion) and it appeared with PageMemory. It cannot be > configured on a cache level. It is applicable ONLY for data regions > WITHOUT persistense and controls offheap pages eviction. If > pageEvictionMode is not DataPageEvictionMode.DISABLED then in case of > not enough memory (see also evictionThreshold) some page will be > evicted (actually cleaned and reused). > > If persistence is enabled DataRegionConfiguration.pageEvictionMode has > no effect (there should be a warning in Ignite node startup logs). For > a persistent data regions there is an internal page replacement > algorithm allowing to reuse offeap memory pages when some data need to > be pulled from disk. > > пн, 8 июл. 2019 г. в 18:38, Ilya Kasnacheev <[email protected]>: > > > > Hello! > > > > Data is always written to persistence immediately (via WAL). You can > control eviction of offheap with evictionThreshold and pageEvictionMode > settings of DataRegionConfiguration. > > > > Regards, > > -- > > Ilya Kasnacheev > > > > > > пн, 8 июл. 2019 г. в 17:50, Andrey Dolmatov <[email protected]>: > >> > >> When data overfit dataRegion max size, so no more available offheap > space, then data goes to persistence. So, what option controls how data > pages should be evicted from offheap to persistence. > >> > >> On Mon, Jul 8, 2019, 5:33 PM Ilya Kasnacheev <[email protected]> > wrote: > >>> > >>> Hello! > >>> > >>> Data is always stored in offheap. Eviction strictly controls onheap > cache. Once data is evicted from onheap it is available in offheap. > >>> > >>> Regards, > >>> -- > >>> Ilya Kasnacheev > >>> > >>> > >>> пн, 8 июл. 2019 г. в 17:31, Andrey Dolmatov <[email protected]>: > >>>> > >>>> We plan to use persistence in production. I didn't understand, > CacheConfiguration.EvictionPolicy specify heap->offheap eviction, > offheap->persistence eviction or both. It's not clear for me. > >>>> > >>>> On Mon, Jul 8, 2019, 5:19 PM Ilya Kasnacheev < > [email protected]> wrote: > >>>>> > >>>>> Hello! > >>>>> > >>>>> Oops, I was wrong. This is indeed the wrong setting. > >>>>> > >>>>> Have you tried specifying evictionPolicy? I think it is the one that > controls eviction from onheap cache. You can put a LruEvictionPolicy of 100 > 000 here, for example. > >>>>> > >>>>> Regards, > >>>>> -- > >>>>> Ilya Kasnacheev > >>>>> > >>>>> > >>>>> пн, 8 июл. 2019 г. в 17:09, Andrey Dolmatov <[email protected]>: > >>>>>> > >>>>>> No, because we didnt specify QueryEntity. > >>>>>> Does onheapCacheEnabled uses for SQL only? > >>>>>> What default value for sqlOnheapCacheMaxSize? > >>>>>> > >>>>>> пн, 8 июл. 2019 г. в 17:05, Ilya Kasnacheev < > [email protected]>: > >>>>>>> > >>>>>>> Hello! > >>>>>>> > >>>>>>> Have you tried also specifying sqlOnheapCacheMaxSize? You can > specify 100 000 if you like. > >>>>>>> > >>>>>>> Regards, > >>>>>>> -- > >>>>>>> Ilya Kasnacheev > >>>>>>> > >>>>>>> > >>>>>>> пн, 8 июл. 2019 г. в 17:01, Andrey Dolmatov <[email protected] > >: > >>>>>>>> > >>>>>>>> We use simple replicated KV cache. > >>>>>>>> We try to upload 32 000 000 small records <Long, Long> to it > (about 6Gb in data region, persistance disabled). We load data using > DataStreamer. > >>>>>>>> > >>>>>>>> If we set onheapCacheEnabled=false, server node consumes heap > about 500 Mb. > >>>>>>>> If we set onheapCacheEnabled=true, server node consumes heap > about 6 Gb. > >>>>>>>> > >>>>>>>> Why DataStreamer uses heap memory to load data? Why on-heap size > is unlimited (not just 100.000 records)? What default on-heap eviction > policy? > >>>>>>>> > >>>>>>>> <bean class="org.apache.ignite.configuration.CacheConfiguration"> > >>>>>>>> <property name="cacheMode" > value="REPLICATED"/> > >>>>>>>> <property name="onheapCacheEnabled" > value="true"/> > >>>>>>>> <property name="copyOnRead" value="false"/> > >>>>>>>> > >>>>>>>> Thanks! > > > > -- > Best regards, > Ivan Pavlukhin >
