Apache Cassandra

Apache Cassandra
Tip de NoSQL
Autor Avinash Lakshman [d] și Prashant Malik [d]
Dezvoltator Apache Software Foundation
Scris in Java [1]
Prima editie 2008 și 10 aprilie 2012 [1]
ultima versiune
Licență Licență Apache 2.0
Site-ul web cassandra.apache.org
 Fișiere media la Wikimedia Commons

Apache Cassandra  este un sistem de gestionare a bazelor de date distribuite care aparține clasei de sisteme NoSQL și este conceput pentru a crea stocări extrem de scalabile și fiabile de matrice de date uriașe reprezentate ca un hash.

Inițial, proiectul a fost dezvoltat în măruntaiele Facebook și în 2009 transferat sub aripa Apache Software Foundation , această organizație continuă să dezvolte proiectul. Soluțiile industriale bazate pe Cassandra au fost implementate pentru a oferi servicii unor companii precum Cisco , IBM , Cloudkick , Reddit , Digg , Rackspace , Huawei , Netflix , Apple , Instagram , GitHub , Twitter și Spotify . Până în 2011, cel mai mare cluster de servere care deservește o singură bază de date gestionată de Cassandra avea peste 400 de mașini și conținea peste 300 TB de date [3] .

Scris în Java , implementează un sistem hash distribuit similar cu DynamoDB , care oferă scalabilitate aproape liniară cu creșterea volumului de date. Folosește un model de stocare a datelor bazat pe o familie de coloane , care diferă de sisteme precum MemcacheDB , care stochează datele doar într-o pereche cheie-valoare , prin capacitatea de a stoca hash-uri cu mai multe niveluri de imbricare. Aparține categoriei de SGBD cu toleranță la erori: datele plasate în baza de date sunt replicate automat pe mai multe noduri ale unei rețele distribuite sau chiar distribuite uniform în mai multe centre de date. Când un nod eșuează, funcțiile acestuia sunt preluate din mers de către alte noduri, adăugând noi noduri la cluster și actualizarea versiunii Cassandra se face din mers, fără intervenție manuală suplimentară și reconfigurare a altor noduri. Cu toate acestea, este foarte recomandat să se regenereze cheile (etichetele) pentru fiecare nod, inclusiv pentru cele existente, pentru a păstra calitatea echilibrării sarcinii. Generarea cheilor pentru nodurile existente poate fi evitată în cazul unei creșteri multiple a numărului de noduri (de 2 ori, de 3 ori și așa mai departe).

CQL

Pentru a simplifica interacțiunea cu baza de date, este acceptat limbajul de interogare structurat CQL (Cassandra Query Language), care este oarecum similar cu SQL , dar cu funcționalitate redusă semnificativ. De exemplu, puteți executa doar cele mai simple interogări SELECTcu o selecție conform unei anumite condiții. Adăugarea și actualizarea se realizează printr-o singură expresie UPDATE, nu există nicio operațiune INSERT(dacă nu există înregistrare, UPDATEse creează în timpul execuției - se folosește semantica instrucțiunii SQL MERGE). Dintre caracteristicile distinctive - suport pentru spații de nume și familii de coloane, crearea de indici prin expresia " CREATE INDEX". Drivere compatibile cu CQL implementate pentru Python (DBAPI2), Java ( JDBC ), Ruby ( gem cassandra-cql ), PHP ( Thrift , cassandra-pdo , Cassandra-PHP-Client-Library ), JavaScript ( Node.js ) și Perl ( DBD::Cassandra ).

În plus, CQL este implementat în DBMS Scylla , care este similar din punct de vedere arhitectural și lingvistic cu sistemul Cassandra, dar scris în C++ pentru a îmbunătăți performanța.

Note

  1. 1 2 https://projects.apache.org/json/projects/cassandra.json
  2. https://github.com/apache/cassandra/releases/tag/cassandra-4.0.7
  3. Lansarea bazei de date Apache Cassandra 1.0 . Data accesului: 14 ianuarie 2012. Arhivat din original la 23 octombrie 2011.

Link -uri

Literatură