4 ms·
If Mnesia claims to be AP or CP, and it's not, there is a problem, but the following sentence is wrong IMHO: "In short, it is broken with respect to the CAP the
by antirez 12y ago
If Mnesia claims to be AP or CP, and it's not, there is a problem, but the following sentence is wrong IMHO: "In short, it is broken with respect to the CAP theorem.".
Basically if it is per design, it is perfectly fine to design a database system that does not try to be Available nor Consistent (capitalized to mean A and C of CAP, not other kinds of availability or consistency).
C of CAP is very strict, and requires consensus (because we assume we are partition tolerant).
A of CAP is very strict, and requires even a single isolated node to be able to reply to requests.
As long as the behavior of the system is well specified in the documentation, a database system can make the conscious tradeoff of not being AP nor CP without being "broken". If it is a good idea or not it's a matter of design and use cases, but the point is, CAP does not capture the whole set of tradeoffs of a database system, so there are other real world reasons in certain systems that may make you sacrifice the possibility of taking the maximum theoretical availability or consistency.
So certain real world systems may have a specific set of liveness and safety property, well documented, and designed for a given set of use cases and implementation goals.
- rubiquity 12y agoMnesia predates the CAP theorem so perhaps that is why the author feels it doesn't specifically fit into AP or CP. You can't design your system around something that doesn't exist yet! Though, the qualities that CAP tries to represent were probably still on their mind albeit in a less formalized way.