CAP, Base, Eventual Consistency

CAP

  • consistency - wszystkie klienty widzą ten sam stan danych

  • availability - każdy klient może pisać/czytać

  • partition tolerance - system funkcjonuje poprawnie mimo wystąpienia podziału sieci

  • C+A => MySQL, Postgres

  • A+P => Cassandra, CouchDB, Riak

  • C+P => HBase, MongoDB, Redis

Model transakcji BASE

  • Basically Available - wysoka dostępność

  • Soft state - wystarczająco świeże

Eventual consistency - odroczone osiągnięcie spójności

  • wybieramy dostępność kosztem spójności

  • teoretyczna gwarancja, że zakładając brak modyfikacji zasobu, ostatecznie wszystkie odczyty będą zwracały najnowszą wartość

  • N - liczba węzłów klastra

  • W - węzły uczestniczące w zapisie

  • R - węzły uczestniczące w odczycie

Dobór parametrów spójności

spójność:

  • silna: W + R > N

  • słaba: W + R <= N

wydajność:

  • odczytu: W >> R

  • zapisu: R >> W

Last updated