Hi John,
1. Actually it is. By default data page eviction is disabled
(DataPageEvictionMode.DISABLED) and when no memory left, it will throw
IgniteOutOfMemoryException.
2. If you have enabled persistence - no data will be lost, dirty pages
will be written do disk. In other words Ignite starts swapping pages
between memory and drive using RANDOM_LRU eviction mode.
3. Ignite 2.0+ works only with pages, so you cannot set eviction per
entry. If page was modified - it will be marked as dirty and fully
written to disk.
Thanks!
-Dmitry.
04.09.2017 21:33, John Wilson пишет:
I appreciate the nice explanation. I got a few more questions:
1. For the case where on-heap caching and persistent are both
disabled, why does Ignite throw out out-dated pages from off-heap?
Why not throw OOM error since the out-dated pages are not backed
by persistent store and throwing away results in data loss?
2. For off-heap eviction with persistent store enabled, will entries
evicted from data pages be written to disk (in case they are
dirty) or will they be thrown away (which would imply that entries
eligible for eviction must be clean and have already been written
to disk by checkpointing)?
3. Checkpointing works by locating dirty pages and writing them out.
If a single entry in a data page is dirty (has been updated since
the last check pointing), will checkpointing write the entire data
page (all entries) to the partition files or just the dirty entry?
Thanks!
On Mon, Sep 4, 2017 at 8:17 AM, dkarachentsev
<[email protected] <mailto:[email protected]>> wrote:
Hi,
Assume you have disabled onheapCahe and disabled persistence. In
that case
you may configure only datapage eviction mode, then outdated pages
will be
thrown away, when no free memory will be available for Ignite.
Also you
cannot configure per-entry eviction.
OK, if you enable onheapCache, then Ignite will store on heap
every entry
that was read from off-heap (or disk). Next reads of it will not
require
off-heap readings, and every update will write to off-heap. To
limit size of
onheapCache you may set CacheConfiguration.setEvictionPolicy(),
but it will
not evict off-heap entries.
So, off-heap eviction may be controlled with DataPageEvictionMode
only, and
as you suggested, it clears entries one-by-one from page, checking for
current locks (transaction locks as well). If entry is locked, it
won't be
evicted.
Thanks!
-Dmitry.
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
<http://apache-ignite-users.70518.x6.nabble.com/>