Dima,

None database I know use separate regions for index pages due to the reason
I expressed above. Instead, they split all pages into two groups - hot and
cold. With certain rules on how to move pages inside and between these
groups. None of these algorithms are complex enough. In fact, they are
pretty straightforward and battle-tested. When implemented properly it
doesn't matter whether the page is index page or data page. The only thing
that matter is how often it is accessed. This is critical piece that we
lack in the product - our policy is called "random *LRU*", while in reality
is not LRU at all.

As far as index pages replacement we do not know whether this is problem at
all. We heard some complaints that it might be a problem. But we didn't see
any proofs (thanks to lack of monitoring) and even if this is a problem, we
do not understand how severe it is. May be it adds 1% overhead and can be
ignored for years, may be it adds 1000% overhead and must be fixed
immediately.

This is sensitive piece of a product. Let's use objective data, not
assumptions.

On Thu, Aug 16, 2018 at 12:08 PM Dmitriy Setrakyan <dsetrak...@apache.org>
wrote:

> On Thu, Aug 16, 2018 at 2:01 AM, Vladimir Ozerov <voze...@gridgain.com>
> wrote:
>
> > Hi Dima,
> >
> > Putting index pages in separate region is wrong approach, because data
> > pages may be equally important on certain workloads, especially in
> > heap-organized databases, such as Ignite
>
>
> Never seen a use case where the data page was more important than the index
> page. I think we are getting into a hypothetical land. Most Ignite users
> are having the reverse problem - index pages get evicted in the same way as
> data pages.
>
> Currently, we are solving it in a most awkward way by trying to give index
> pages a different eviction policy. A right solution would be to stick them
> into a different region and control the eviction policy for the index
> region separately from the data region.
>
> D.
>

Reply via email to