Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[PL] CAP theorem or: we all make distributed systems

mrzasa
August 10, 2016

[PL] CAP theorem or: we all make distributed systems

Many web and mobile applications nowadays are de facto distributed systems, It is important thus to remember about limitations typical for distributed computing. An important one is described by CAP theorem that says you cannot have consistency, availability and partition tolerance at once.

The slides are in Polish, they were used during my lightning talk at PGS Software.

mrzasa

August 10, 2016
Tweet

More Decks by mrzasa

Other Decks in Programming

Transcript

  1. 1.0 CAP THEOREM WE ALL MAKE DISTRIBUTED SYSTEMS Maciej Rząsa

    PGS Software 10.08.2016 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
  2. SKUTKI CA (consistency-availability): tylko jeden host CP (consistency-partitioning): aplikacja nie

    działa offline AP (availability-partitioning) synchronizacja i odtwarzanie po podziale (partition recovery)
  3. JAK NA TO TRAFILIŚMY? aplikacja mobilna z dostępem offline funkcje

    offline: AP z rozwiązywanie konfliktów, pozostałe: CP wymagana synchronizacja i rozwiązywanie konfliktów
  4. WYZWANIA ZWIĄZANE Z SYNCHRONIZACJĄ rozmiar danych (paginacja, optymalizacja, cache) osłabienie

    walidacji spójność danych na kliencie identyfikacja danych edycja offline
  5. CAP: KIEDY MNIE TO DOTYCZY? aplikacje aplikacje webowe i mobilne

    z trybem offline wspólna edycja jednego dokumentu (np. wiki) brak odpowiedzi po istotnej akcji (np. po kliknięciu "Kup") infrastruktura klastry baz danych (zwłaszcza NoSQL) kolejki komunikatów (nie ma once and only once) Ciekawostka: cześć systemów bankowych jest AP.
  6. PODSUMOWANIE aplikacje webowe i mobilne to systemy rozproszone w przypadku

    błędu sieci trzeba wybrać pomiędzy dostępnością a spójnością sieć jest zawodna, więc wcześniej czy później dojdzie do błedu
  7. MATERIAŁY Ikony na ilustracjach pochodzą z CAP twelve year later

    Jepsen: testy bezpieczeństwa (safety) systemów rozproszonych Dlaczego nie można zrezygnować z odporności na podziały Algorytmy używane w rozproszonych bazach danych (m. in. zapewniające spójność) https://icons8.com