Hi Folks,

Thank you for your replies! I've updated wiki according Lucas & Alexey's
notes. Thank you!

https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Durable+Memory+-+under+the+hood#IgniteDurableMemory-underthehood-Pagereplacement(rotationwithdisk)

I've named this section 'Page replacement (rotation with disk)'. I'm going
to update also class naming in my current PR (3469
<https://github.com/apache/ignite/pull/3469>)

Sincerely,
Dmitriy Pavlov

пн, 5 февр. 2018 г. в 15:25, Ivan Rakov <ivan.glu...@gmail.com>:

> Guys,
>
> +1 for renaming "eviction" for PDS mode.
> I'd choose "page replacement" over "page swapping" for two reasons:
> 1) We already have "replace" metrics in DataRegionMetrics. The less we
> change existing namings, the better.
> 2) "Page swapping" term is common in operating systems, and that's why
> we'll confuse our "page swapping" (which is essential of Ignite native
> persistence) with actual OS page swapping (which usually signals about
> ineffective hardware resources usage and is better to be avoided) in
> many discussions later.
>
> Best Regards,
> Ivan Rakov
>
> On 04.02.2018 23:42, Dmitry Pavlov wrote:
> > Hi Alex,
> >
> > Thank you for explanation. Do you mind if I copy this explanation to wiki
> > page?
> >
> > Strongly +1 for new term for page replacement mechanism for PDS mode. I
> > like 'page swapping' because it has analogue in operating systems.
> >
> > New term will also identify feature by class name PageEviction... and
> > PageSwap... will point to class purpose.
> >
> > Sincerely,
> > Dmitriy Pavlov
> >
> > вс, 4 февр. 2018 г. в 23:05, Alexey Goncharuk <
> alexey.goncha...@gmail.com>:
> >
> >> Guys,
> >>
> >> To clarify the questions, I would like to reiterate over the mechanics
> of
> >> evictions and then suggest a renaming that should resolve such things in
> >> the future.
> >>
> >> First of all, Lucas is right - eviction policy only makes sense when
> native
> >> persistence is disabled because what it does is actually freeing up
> memory
> >> when a user hits the memory limit. The only way to do this is to destroy
> >> inserted data because there is no other way to free memory. Now as per
> the
> >> eviction mechanism, it is both per-page and per-entry: first, we choose
> a
> >> page which fits most for eviction, however, we cannot simply erase the
> page
> >> because quite a lot of data structures are referring to that page. To
> deal
> >> with it, we read keys that the chosen page contains and then clear
> >> individual cache entries, which in turn will clear up all necessary
> links.
> >> If there are no concurrent updates, the page becomes empty and will be
> >> reused for other user data. This is exactly what is explained on the
> wiki
> >> page (at least in my reading of the page).
> >>
> >> Second, at this point, I would rename page management mechanism with
> >> enabled persistence from 'eviction' to 'page replacement' or 'page
> >> swapping', because it does not destroy any data, but rather replaces a
> >> chosen buffer in memory from one page to another. The content of neither
> >> pages does not change during page replacement. This mechanism is
> unlikely
> >> to be selected by a user because the effectiveness of page replacements
> >> heavily depends on internal data structures and may change from version
> to
> >> version, and may even be adaptive depending on the load pattern.
> >>
> >> Hope this resolves the confusion.
> >>
> >> --AG
> >>
> >> 2018-02-03 1:03 GMT+03:00 Denis Magda <dma...@apache.org>:
> >>
> >>> Dmitriy,
> >>>
> >>> I’m surprised to hear that Random-LRU works at the entry level when
> >> Ignite
> >>> persistence is off. Frankly, this section confuses a lot:
> >>> https://cwiki.apache.org/confluence/display/IGNITE/
> >>> Ignite+Durable+Memory+-+under+the+hood#IgniteDurableMemory-
> >>> underthehood-Entryeviction <https://cwiki.apache.org/
> >>> confluence/display/IGNITE/Ignite+Durable+Memory+-+under+
> >>> the+hood#IgniteDurableMemory-underthehood-Entryeviction>
> >>>
> >>> While it was assumed that the entry-based eviction works only for
> on-heap
> >>> caches:
> >>> https://apacheignite.readme.io/docs/evictions <
> >>> https://apacheignite.readme.io/docs/evictions>
> >>>
> >>> Alex G., please chime in and clarify the misunderstanding.
> >>>
> >>> —
> >>> Denis
> >>>
> >>>> On Feb 2, 2018, at 4:01 AM, Dmitry Pavlov <dpavlov....@gmail.com>
> >> wrote:
> >>>> Hi Val,
> >>>>
> >>>> I think it is quite accurate because eviction in case PDS enabled or
> >> not
> >>>> has quite different purposes.
> >>>>
> >>>> 1. Let us consider PDS enabled and page eviction occurs. First of all
> >> it
> >>> is
> >>>> page based eviction, but not entry-based. Actually data is not
> removed,
> >>> but
> >>>> only written to disk. We can address this page later by ID.
> >>>> PDS eviction is primarily the replacement of pages from memory to page
> >> on
> >>>> disk. This eviction policy should ensure the maximum performance of
> the
> >>>> solution in the future. There is no data removal from grid in this
> >> case.
> >>>> And Ignite does not allow users to configure the policy. If benchmarks
> >>> show
> >>>> that a change in policy results in increased performance, then we can
> >>>> switch policy.
> >>>>
> >>>> 2. Entry-based eviction (if there is no persistence is available) is
> >>>> slithly different. User will need to reload data into grid in case
> >> entry
> >>> is
> >>>> evicted but required in cache. In that case Ignite provides selection
> >> of
> >>>> policies.
> >>>>
> >>>> Sincerely,
> >>>> Dmirtiy Pavlov
> >>>>
> >>>>
> >>>>
> >>>> чт, 1 февр. 2018 г. в 22:24, Valentin Kulichenko <
> >>>> valentin.kuliche...@gmail.com>:
> >>>>
> >>>>> Guys,
> >>>>>
> >>>>> Thanks for responses. But I still fail to understand how it affects a
> >>> user.
> >>>>> Are you saying that with persistence enabled Random-LRU is always
> used
> >>>>> regardless of what is specified in pageEvictionMode, while in
> >> in-memory
> >>>>> only scenario we can also utilize Random-2-LRU for eviction? Is this
> >>>>> accurate? Are there any other differences?
> >>>>>
> >>>>> -Val
> >>>>>
> >>>>> On Thu, Feb 1, 2018 at 5:01 AM, Dmitry Pavlov <dpavlov....@gmail.com
> >
> >>>>> wrote:
> >>>>>
> >>>>>> Hi Vyacheslav,
> >>>>>>
> >>>>>> Yes, this is right, but for now PDS page based eviction uses
> >>> Random-LRU,
> >>>>>> not Random-2-LRU. Something may be changed in future Ignite
> releases,
> >>> but
> >>>>>> now Random-LRU is used. I am going to research if there is some room
> >>> for
> >>>>>> improvements in this aspect (e.g. IGNITE-7507 recenly found).
> >>>>>>
> >>>>>> If clean page is evicted, nothing really happends. If dirty page is
> >>>>> evicted
> >>>>>> from region during checkpointing process run, page is stored in file
> >>>>> before
> >>>>>> eviction
> >>>>>>
> >>>>>> Some info about this can be found in
> >>>>>> https://cwiki.apache.org/confluence/display/IGNITE/
> >>>>>> Ignite+Durable+Memory+-+under+the+hood#IgniteDurableMemory-
> >>>>>> underthehood-Pagebasedeviction
> >>>>>>
> >>>>>> Sincerely,
> >>>>>> Dmitriy Pavlov
> >>>>>>
> >>>>>> чт, 1 февр. 2018 г. в 9:53, Vyacheslav Daradur <daradu...@gmail.com
> >>> :
> >>>>>>> Hi Valentin,
> >>>>>>>
> >>>>>>> As far as I know, when persistence is enabled and Ignite can't
> >>>>>>> allocate new page-memory in the memory segment, then Ignite
> >>>>>>> automatically evict some data from RAM to PDS using Random-2-LRU
> >>>>>>> eviction algorithm. And there are no mechanisms to evict entries
> out
> >>>>>>> when PDS is enabled.
> >>>>>>>
> >>>>>>> I'll be glad if I am not right and someone will correct me because,
> >> as
> >>>>>>> Ignite user, I can't use PDS only as RAM disk replication for the
> >> use
> >>>>>>> case in my project.
> >>>>>>>
> >>>>>>>
> >>>>>>> On Thu, Feb 1, 2018 at 3:53 AM, Valentin Kulichenko
> >>>>>>> <valentin.kuliche...@gmail.com> wrote:
> >>>>>>>> Folks,
> >>>>>>>>
> >>>>>>>> On "Eviction Policies" documentation page [1] we have the
> following
> >>>>>>> callout:
> >>>>>>>>> Configured eviction policy has no effect if Ignite persistence is
> >>>>>>> enabled
> >>>>>>>>> Note that if Ignite Persistence is enabled, then the page-based
> >>>>>>> evictions
> >>>>>>>> have no effect because the oldest pages will be purged from memory
> >>>>>>>> automatically.
> >>>>>>>>
> >>>>>>>> This really confuses me. Why is there a difference in how data is
> >>>>>> evicted
> >>>>>>>> from memory depending on having disk enabled or not? And how does
> >>>>>>> eviction
> >>>>>>>> work with persistence enabled then?
> >>>>>>>>
> >>>>>>>> Does anyone can clarify?
> >>>>>>>>
> >>>>>>>> [1] https://apacheignite.readme.io/docs/evictions
> >>>>>>>>
> >>>>>>>> -Val
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Best Regards, Vyacheslav D.
> >>>>>>>
> >>>
>
>

Reply via email to