Apache Cassandra

Apache Cassandra

FejlesztőApache Software Fundation, DataStax
Legfrissebb stabil kiadás5.0.2
(2021.09.07.)
Programozási nyelvJava
Operációs rendszermulti-platform (JVM)
Állapotaktív
Kategóriaadatbázis
LicencApache Licenc 2.0
Az Apache Cassandra weboldala

Az Apache Cassandra egy nyílt forráskódú elosztott adatbázis szerver szoftver, amelyet arra terveztek, hogy nagy mennyiségű adatot tároljon alacsony költségű szervereken, magas rendelkezésre állást szolgáltatva. A Cassandra támogatást ad több adatközponton működő fürtök működtetésére.

Történet

[szerkesztés]

A Cassandra fejlesztését az Amazon DynamoDB egyik fejlesztőjeként is ismert Avinás Laksman és Prasánt Malik kezdte a Facebooknál. A forráskódot 2008-ban adták ki nyílt forráskódú projektként,[1] majd 2009 márciusában lett az Apache inkubátor tagja.[2] 2010 február 17-én lett felső szintű Apache projekt.[3]

Adatmodell

[szerkesztés]

A Cassandra adatmodellje a kulcs-érték és az oszlopos (vagy tabulált) adatmodell hibridje.

Fürtözés

[szerkesztés]

A Cassandra gossip protokollt használ arra, hogy a fürtöt alkotó szerverek információt osszanak meg egymással. Ahhoz viszont, hogy a kezdeti pár szerverrel fel tudja venni a kapcsolatot egy a fürthöz csatlakozni kívánó szerver, ahhoz mag (seed) szervereket lehet kijelölni az elég stabilan működő szerverek közül,[4] ezek tudják megosztani vele a fürt éppen aktuális tagjainak listáját. Ahhoz, hogy egy szerver csatlakozzon a fürthöz, egy seed szervert el kell hogy érjen.

Egy Cassandra fürt építésekor fontos a megfelelő particionáló megadása. Két főbb particionáló algoritmus érhető el:

  • Véletlenszerű particionáló (RandomPartitioner): Az MD5 hash kód alapján választja ki a megfelelő szervert az adat tárolására. Az 1.1-es verzióig ez volt az alapértelmezett, majd az 1.2 verzióban a Murmur3 partícionáló helyettesítette. Ez lényegében ugyanaz az elosztási mód, de a Murmur3 kulcsok számítása sokkal gyorsabb az MD5-nél.
  • Sorrendet tartó particionáló (OrderPreservingPartitioner): Ez kulcsok sorrendjének megfelelően tartja a az adatokat együtt. Ennek használata túlterhelt pontokhoz vezethet a fürtben, ezért használata nem ajánlott.[5]

Ismert felhasználók

[szerkesztés]
  • A Facebook használta az üzenetek keresésére több mint 200 szerveren futtatva, ezt viszont 2010 második felében Apache HBase-re cserélték. Ugyanakkor viszont 2012-ben ismét használatba vették az Instagramban.[forrás?]
  • A Rackspace használja belső feladatok végrehajtására.
  • A Twitter is használja, bár nem az üzenetek tárolására.

Fordítás

[szerkesztés]

Ez a szócikk részben vagy egészben az Apache Cassandra című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Jegyzetek

[szerkesztés]
  1. James Hamilton: Facebook Releases Cassandra as Open Source
  2. Matthieu Riou: Incubator Board Report
  3. Matthieu Riou: Cassandra is an Apache top level project
  4. Configuring Multiple Nodes Archiválva 2014. január 10-i dátummal a Wayback Machine-ben - cassandra wiki
  5. Partitioners - cassandra wiki