Baza klucz-wartość Cassandra od Facebooka

Cassandra to skalowalny, rozproszony i magazyn klucz-wartość ze strukturą tabel. Baza ta łączy rozproszone technologie z Dynami i model danych z Google BigTable. Jak Dynamo jest "eventually consistent" tj. zakłada że po odpowiednio długim czasie bez nowych zmian wszystkie repliki będą identyczne. Tak jak BigTable baza ta dostarcza modele przypominające tabele.

Cassandra została otwarta przez Facebooka w 2008 roku. Baza ta jest wykorzystywana w Facebooku (120 węzłów, jedna instancja bazy działająca na dwóch datacenter, 36TB zapisanych danych, 300 milionów zapisów dziennie, 1 milion odczytów dziennie), od niedawna także przez Digga, lecz nadal jest to bardzo młody projekt. Obecnie Cassandra rozwijana jest w obrębie Apache Incubator.

Możliwości Cassandry:
  • Zaprojektowana by zawsze być dostępną. Zapisy zawsze się udają. Dwa ścieżki odczytu.
  • Bogaty model danych pozwalający na bardziej efektywne użytkowanie w porównaniu do prostych składnic klucz-wartość.
  • Dane są automatycznie replikowane pomiędzy wieloma węzłami. Jest też obsługa do implementacji strategii replikacji pomiędzy różnymi datacenters.
  • Nowe węzły mogą być dodane do działającego klastra
  • Spójność danych - cassandra stosuje model "eventually consistent", lecz ma też zaawansowane rozwiązania zmniejszające okresy braku spójności.
  • Zapisy i odczyty są atomowe dla pojedynczej ColumnFamily.
  • Obsługa wersjonowania i rozwiązywania konfliktów (z wbudowaną polityką "ostatnia aktualizacja wygrywa")

Dostęp do bazy danych

Cassandra udostępnia interfejs poprzez Thrift, czyli surowe interfejs można wygenerować dla wielu języków (obsługiwanych przez Thrifta). W sieci można znaleźć kilka projektów zapewniających nakładkę na to podstawowe API (github, google code itd.). Jest to projekt bardzo wyspecjalizowany i młody, przez co nie ma jeszcze dużej rzeszy użytkowników. Zobacz także:
RkBlog

Aplikacje i dystrybucje, 17 October 2009

Comment article
Comment article RkBlog main page Search RSS Contact