K dispozici je Apache Cassandra 4.0 DBMS

Nadace Apache Software Foundation představila vydání distribuovaného DBMS Apache Cassandra 4.0, který patří do třídy systémů noSQL a je navržen tak, aby vytvořil vysoce škálovatelné a spolehlivé úložiště obrovského množství dat uložených ve formě asociativního pole (hash). Verze Cassandra 4.0 je považována za připravenou pro produkční implementaci a již byla testována v infrastrukturách Amazon, Apple, DataStax, Instaclustr, iland a Netflix s clustery více než 1000 uzlů. Kód projektu je napsán v Javě a je distribuován pod licencí Apache 2.0.

Cassandra DBMS byl původně vyvinut společností Facebook a v roce 2009 převeden pod záštitu nadace Apache Foundation. Průmyslová řešení založená na Cassandře byla nasazena pro napájení služeb od společností jako Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit a Twitter. Například infrastruktura úložiště založená na Apache Cassandra nasazená společností Apple má více než tisíc clusterů, včetně 160 tisíc uzlů a ukládá více než 100 petabajtů dat. Huawei používá více než 300 clusterů Apache Cassandra, které zahrnují 30 tisíc uzlů, a Netflix používá více než 100 clusterů, které pokrývají 10 tisíc uzlů a zpracovávají více než bilion požadavků denně.

Cassandra DBMS kombinuje plně distribuovaný hašovací systém Dynamo, který poskytuje téměř lineární škálovatelnost s rostoucím objemem dat. Cassandra používá model úložiště dat založený na rodině sloupců (ColumnFamily), který se liší od systémů jako memcachedb, které ukládají data pouze v řetězci klíč/hodnota, schopností organizovat úložiště hashů s několika úrovněmi vnoření. Pro zjednodušení interakce s databází je podporován strukturovaný dotazovací jazyk CQL (Cassandra Query Language), který připomíná SQL, ale má sníženou funkčnost. Mezi funkce patří podpora jmenných prostorů a rodin sloupců a vytváření indexů pomocí výrazu „CREATE INDEX“.

DBMS umožňuje vytvářet úložiště odolné proti selhání: data umístěná v databázi se automaticky replikují do několika uzlů distribuované sítě, která může zahrnovat různá datová centra. Když uzel selže, jeho funkce jsou za chodu přebírány jinými uzly. Přidávání nových uzlů do clusteru a aktualizace verze Cassandra se provádí za běhu, bez dalšího ručního zásahu nebo překonfigurování jiných uzlů. Ovladače s podporou CQL jsou připraveny pro Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ a JavaScript (Node.js).

Hlavní inovace:

  • Vylepšený výkon a škálovatelnost. Byla zlepšena efektivita výměny dat ve formátu SSTable (Sorted Strings Table) mezi uzly. Protokol Internode Messaging Protocol byl optimalizován. Rychlost přenosu datových toků mezi uzly se zvýšila až 5x (hlavně díky použití techniky Zero Copy a přenosu celých SSTables) a propustnost pro operace čtení a zápisu se zvýšila na 25 %. Proces přírůstkové obnovy byl optimalizován. Latence způsobené pozastavením shromažďování odpadu se zkrátí na několik milisekund.
  • Přidána podpora pro protokol auditu, který umožňuje sledovat operace ověřování uživatelů a všechny provedené dotazy CQL.
  • Přidána možnost udržovat úplný binární protokol požadavků, což vám umožní uložit veškerý provoz požadavků a odpovědí. Pro správu jsou navrženy příkazy „nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog“ a pro analýzu protokolů je dodáván obslužný program fqltool. K dispozici jsou příkazy pro převod protokolu do čitelné formy (Dump), porovnání řezů aktivity (Compare) a opětovné spuštění (Replay) pro analýzu reprodukující podmínky vlastní skutečné zátěži.
  • Přidána podpora pro virtuální tabulky, které nereflektují data uložená v SSTables, ale výstup informací přes API (metriky výkonu, informace o nastavení, obsah mezipaměti, informace o připojených klientech atd.).
  • Efektivita ukládání komprimovaných dat byla zlepšena, což snižuje spotřebu místa na disku a zlepšuje výkon při čtení.
  • Data související se systémovým klíčovým prostorem (system.*) jsou nyní standardně umístěna do prvního adresáře namísto toho, aby byla distribuována napříč všemi datovými adresáři, což umožňuje, aby uzel zůstal funkční, pokud selže jeden z dalších disků.
  • Přidána experimentální podpora pro přechodnou replikaci a levná kvora. Dočasné repliky neukládají všechna data a používají přírůstkové obnovení, aby byly konzistentní s úplnými replikami. Lehká kvora implementují optimalizaci operací zápisu, ve kterých se zápisy do dočasných replik neprovádějí, dokud není k dispozici dostatečná sada úplných replik.
  • Přidána experimentální podpora pro Java 11.
  • Přidána experimentální možnost porovnat všechny stromy Merkle. Například povolení volby na klastru se 3 uzly, ve kterém jsou dvě repliky identické a jedna zastaralá, povede k aktualizaci zastaralé repliky pomocí pouze jedné operace kopírování aktuální repliky.
  • Přidány nové funkce currentTimestamp, currentDate, currentTime a currentTimeUUID.
  • Přidána podpora pro aritmetické operace v dotazech CQL.
  • Je poskytována možnost provádět aritmetické operace mezi daty typu „časové razítko“/“datum“ a „trvání“.
  • Přidán režim pro náhled datových toků potřebných pro obnovu (nodetool repair —preview) a možnost kontroly integrity obnovovaných dat (nodetool repair —validate).
  • Dotazy SELECT nyní mají schopnost zpracovávat prvky Map a Set.
  • Přidána podpora pro paralelizaci počáteční fáze výstavby materializovaných pohledů (cassandra.yaml:concurrent_materialized_view_builders).
  • Příkaz "nodetool cfstats" přidal podporu pro řazení podle určitých metrik a omezení počtu zobrazených řádků.
  • Nastavení slouží k omezení připojení uživatele pouze k určitým datovým centrům.
  • Přidána možnost omezit intenzitu (limit rychlosti) operací vytváření a mazání snímků.
  • cqlsh a cqlshlib nyní podporují Python 3 (Python 2.7 je stále podporován).
  • Podpora platformy Windows byla ukončena. Pro spuštění Cassandry na Windows se doporučuje používat linuxová prostředí vytvořená na bázi WSL2 subsystému (Windows Subsystem for Linux 2) nebo virtualizačních systémů.



Zdroj: opennet.ru

Přidat komentář