Ordering updates on backups in ATOMIC cache

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Ordering updates on backups in ATOMIC cache

Alexey Goncharuk
Guys,

I was thinking about ordering updates on backups so that we are able to
send entry processors on backups as we do in TRANSACTIONAL cache.

What if we send not only the new version of an entry, but also the old
version (the one that was replaced).

Let's say we have an entry with version v0, and we apply updates with
versions v1, v2, v3. Instead of sending just (val1, ver1), (val2, ver2),
(val3, ver3) we can send (val1, ver0->ver1), (val2, ver1->ver2), (val3,
ver2->ver3). In this case even if updated are processed on a backup node in
a different order, we can queue updates and wait until all updates are
received (like we did for ordered messages a while ago).

The only concern that I have is that independent evicts cannot happen on a
backup node because the version of an entry should always match on primary
and backup nodes - so we should always initiate evict from primary node and
use version to evict an entry - basically, treat evict as a remove, but
with no write-through.

Thoughts?
Reply | Threaded
Open this post in threaded view
|

Re: Ordering updates on backups in ATOMIC cache

yzhdanov
If non sync evicts are configured, then cyclic buffer should be used. No?

Thanks!

Yakov
On Sep 11, 2015 09:03, "Alexey Goncharuk" <[hidden email]>
wrote:

> Guys,
>
> I was thinking about ordering updates on backups so that we are able to
> send entry processors on backups as we do in TRANSACTIONAL cache.
>
> What if we send not only the new version of an entry, but also the old
> version (the one that was replaced).
>
> Let's say we have an entry with version v0, and we apply updates with
> versions v1, v2, v3. Instead of sending just (val1, ver1), (val2, ver2),
> (val3, ver3) we can send (val1, ver0->ver1), (val2, ver1->ver2), (val3,
> ver2->ver3). In this case even if updated are processed on a backup node in
> a different order, we can queue updates and wait until all updates are
> received (like we did for ordered messages a while ago).
>
> The only concern that I have is that independent evicts cannot happen on a
> backup node because the version of an entry should always match on primary
> and backup nodes - so we should always initiate evict from primary node and
> use version to evict an entry - basically, treat evict as a remove, but
> with no write-through.
>
> Thoughts?
>