Unless I have missed something, I don't believe Bizur is "linearizable at the bucket level" (as the paper claims).
Suppose a server X was the leader, and subsequently a new leader was elected without X's knowledge. X does not learn of the new election unless it attempts a write. Until then, the read side may not detect the situation either since EnsureRecovery may return true (the bucket being read has the same elect_id as X.elect_id. Thus reads may return stale value. What we have here is "sequential consistency at the bucket level". which technically is cache consistency.
Separately, because the consistency claims are at a key/bucket level, and since there is no claim to global ordering (between different keys), a comparison to Zookeeper is not quite fair. Bizur cannot be used as a coordination service because it isn't sequentially consistent overall.
Suppose a server X was the leader, and subsequently a new leader was elected without X's knowledge. X does not learn of the new election unless it attempts a write. Until then, the read side may not detect the situation either since EnsureRecovery may return true (the bucket being read has the same elect_id as X.elect_id. Thus reads may return stale value. What we have here is "sequential consistency at the bucket level". which technically is cache consistency.
Separately, because the consistency claims are at a key/bucket level, and since there is no claim to global ordering (between different keys), a comparison to Zookeeper is not quite fair. Bizur cannot be used as a coordination service because it isn't sequentially consistent overall.