(składnia)

Piotr Jastrzębski: NoSQL na przykładzie Apache Cassandra® i Scylla

Programista 03/2018 (70) kwiecień/maj [okładka]

Apache Cassandra® to uznana baza danych NoSQL, która jest bardzo popularna wśród firm przechowujących i przetwarzających duże ilości danych (Apple, Netflix), głównie z powodu jej liniowej skalowalności horyzontalnej. Projekt powstał 10 lat temu w firmie Facebook i po pewnym czasie został opublikowany na licencji open-source i przekazany pod kontrolę Apache Foundation®. Decyzje projektowe zaczerpnięte z Amazon Dynamo (model rozproszenia) i Google Big Table (sposób zapisu danych na dysku) są na tyle dobre, że pozwalają skalować klastry Cassandry nawet do kilku tysięcy serwerów.Mimo wielu zalet Apache Cassandra® nie jest wolna od pewnych problemów, związanych z faktem, że została zaimplementowana w technologii Java. Działanie na wirtualnej maszynie, która zarządza pamięcią przy użyciu Garbage Collectora, uniemożliwia, a przynajmniej znacząco utrudnia zapewnienie odpowiednio krótkich i stabilnych czasów obsługi żądań. Dodatkowo język Java powstał w celu zwiększenia produktywności programistów i zdecydowanie nie traktuje wydajności jako obywatela pierwszej kategorii. W większości zastosowań jest to sensowny wybór, ale w przypadku baz danych, które przetwarzają olbrzymie ilości informacji, spadek wydajności jest niestety mocno odczuwalny.