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 via email to