Guys, what if we look at this from another point - we can switch to read from primary only if there is any primary_sync operation that is not acked by backups yet. Or we can wait until all operations of the kind are acked and then proceed with query. This seems to work when we have query after sequence of puts, but fails if we have sequence of puts then compute job spawning a query from remote node. And this seems to bring lots of complications to cache update protocol.
Given this I would vote for switching default (probably, for replicated cache only) to full_sync and output a performance warning. However, there is still an open question - how can I guarantee query consistency with primary_sync? --Yakov