Comment by octacat

2 years ago

"FDB can tolerate f failures with only f+1 replicas." is too vague. What kind of failures and in which situations?

If "failure" is a netsplit, only single partition would allow writes, because they choose CP from CAP theorem.

Oh man I've just had a (friendly!) debate on this with some distsys folks on twitter.

General consensus (no pun intended!) is the term availability is not really well defined, and the CAP thoerem is not a useful way to think about things (see Martin Kleppmanns "the unhelpful CAP theorem" in DDIA).

  • The problem is that the term available is overloaded. In CAP “(A)vailable” specifically means you can keep making db updates as long as you can talk to any db node (e.g. you and a db node have split off the internet together). In every other distributed systems context “available” means the system doesn’t stop working overall when failures happen. These are very different usages and it confuses a lot of people.

  • Available = you can see one of replicas, you are good to go. CAP is good to understand what are the limitations when you have partitioned network.

    FoundationDB does not give you Availabity though, only CP.