Apache Cassandra

Apache Cassandra
Type NoSQL
Forfatter Avinash Lakshman [d] og Prashant Malik [d]
Udvikler Apache Software Foundation
Skrevet i Java [1]
Første udgave 2008 og 10. april 2012 [1]
nyeste version
Licens Apache-licens 2.0
Internet side cassandra.apache.org
 Mediefiler på Wikimedia Commons

Apache Cassandra  er et distribueret databasestyringssystem, der tilhører klassen af ​​NoSQL - systemer og er designet til at skabe meget skalerbare og pålidelige lagringspladser af enorme dataarrays repræsenteret som en hash.

Oprindeligt blev projektet udviklet i Facebooks tarme og i 2009 overført under Apache Software Foundations fløj , fortsætter denne organisation med at udvikle projektet. Industrielle løsninger baseret på Cassandra er blevet implementeret til at levere tjenester til virksomheder som Cisco , IBM , Cloudkick , Reddit , Digg , Rackspace , Huawei , Netflix , Apple , Instagram , GitHub , Twitter og Spotify . I 2011 havde den største serverklynge, der betjener en enkelt database administreret af Cassandra, mere end 400 maskiner og indeholdt mere end 300 TB data [3] .

Skrevet i Java implementerer den et distribueret hash-system svarende til DynamoDB , som giver næsten lineær skalerbarhed med stigende datavolumen. Den bruger en datalagringsmodel baseret på en familie af kolonner , som adskiller sig fra systemer som MemcacheDB , der kun lagrer data i et nøgleværdi- par ved evnen til at gemme hashes med flere niveauer af indlejring. Tilhører kategorien af ​​fejltolerant DBMS: de data, der er placeret i databasen, replikeres automatisk til flere noder i et distribueret netværk eller endda jævnt fordelt i flere datacentre. Når en node svigter, bliver dens funktioner opfanget af andre noder, tilføjelse af nye noder til klyngen og opdatering af Cassandra-versionen sker på et øjeblik, uden yderligere manuel indgriben og omkonfiguration af andre noder. Det anbefales dog stærkt at gengenerere nøgler (etiketter) for hver node, inklusive eksisterende, for at bevare kvaliteten af ​​belastningsbalancering. Nøglegenerering for eksisterende noder kan undgås i tilfælde af en multipel stigning i antallet af noder (2 gange, 3 gange og så videre).

CQL

For at forenkle interaktionen med databasen understøttes det CQL (Cassandra Query Language) strukturerede forespørgselssprog, som minder lidt om SQL , men væsentligt reduceret i funktionalitet. For eksempel kan du kun udføre de enkleste forespørgsler SELECTmed en markering i henhold til en bestemt betingelse. Tilføjelse og opdatering udføres gennem et enkelt udtryk UPDATE, der er ingen operation INSERT(hvis der ikke er nogen post, UPDATEoprettes den under udførelsen - SQL-sætningens semantik bruges MERGE). Af de karakteristiske træk - understøttelse af navnerum og familier af kolonner, oprettelse af indekser gennem udtrykket " CREATE INDEX". CQL-aktiverede drivere implementeret til Python (DBAPI2), Java ( JDBC ), Ruby ( gem cassandra-cql ), PHP ( Thrift , cassandra-pdo , Cassandra-PHP-Client-Library ), JavaScript ( Node.js ) og Perl ( DBD::Cassandra ).

Derudover er CQL implementeret i Scylla DBMS , som arkitektonisk og sprogligt ligner Cassandra-systemet, men skrevet i C++ for at forbedre ydeevnen.

Noter

  1. 1 2 https://projects.apache.org/json/projects/cassandra.json
  2. https://github.com/apache/cassandra/releases/tag/cassandra-4.0.7
  3. Apache Cassandra 1.0 databaseudgivelse . Dato for adgang: 14. januar 2012. Arkiveret fra originalen 23. oktober 2011.

Links

Litteratur