Apache Cassandra 4.0 DBMS elérhető

Az Apache Software Foundation bemutatta az elosztott DBMS Apache Cassandra 4.0 kiadását, amely a noSQL rendszerek osztályába tartozik, és nagy mennyiségű, asszociatív tömb (hash) formájában tárolt adatok rendkívül méretezhető és megbízható tárolására szolgál. A Cassandra 4.0 kiadás készen áll az éles megvalósításra, és már tesztelték az Amazon, az Apple, a DataStax, az Instaclustr, az iland és a Netflix infrastruktúrájában, több mint 1000 csomópontból álló klaszterekkel. A projekt kódja Java nyelven íródott, és az Apache 2.0 licenc alatt kerül terjesztésre.

A Cassandra DBMS-t eredetileg a Facebook fejlesztette ki, és 2009-ben az Apache Alapítvány égisze alá került. A Cassandra alapú ipari megoldásokat olyan cégek vezették be az energiaszolgáltatásokhoz, mint az Apple, az Adobe, a CERN, a Cisco, az IBM, a HP, a Comcast, a Disney, az eBay, a Huawei, a Netflix, a Sony, a Rackspace, a Reddit és a Twitter. Az Apple által telepített Apache Cassandra alapú tárolási infrastruktúra például több mint ezer klasztert tartalmaz, köztük 160 ezer csomópontot, és több mint 100 petabájtnyi adatot tárol. A Huawei több mint 300 Apache Cassandra-fürtöt használ, amelyek 30 ezer csomópontot tartalmaznak, a Netflix pedig több mint 100 klasztert, amelyek 10 ezer csomópontot fednek le, és naponta több mint egy billió kérést dolgoznak fel.

A Cassandra DBMS egy teljesen elosztott Dynamo hash rendszert kombinál, amely szinte lineáris skálázhatóságot biztosít az adatok mennyiségének növekedésével. A Cassandra egy oszlopcsaládon (ColumnFamily) alapuló adattárolási modellt használ, amely különbözik az olyan rendszerektől, mint a memcachedb, amelyek csak egy kulcs/értékláncban tárolják az adatokat, mivel képes megszervezni a kivonatok tárolását több szintű egymásba ágyazással. Az adatbázissal való interakció egyszerűsítése érdekében a CQL (Cassandra Query Language) strukturált lekérdezési nyelv támogatott, amely az SQL-re emlékeztet, de funkcionalitása csökkent. A szolgáltatások közé tartozik a névterek és oszlopcsaládok támogatása, valamint az indexek létrehozása a „CREATE INDEX” kifejezés használatával.

A DBMS lehetővé teszi hibaálló tároló létrehozását: az adatbázisban elhelyezett adatok automatikusan replikálódnak egy elosztott hálózat több csomópontjába, amelyek különböző adatközpontokat ölelhetnek fel. Ha egy csomópont meghibásodik, a funkcióit menet közben veszik fel más csomópontok. Az új csomópontok hozzáadása a fürthöz és a Cassandra verzió frissítése menet közben történik, további kézi beavatkozás vagy más csomópontok újrakonfigurálása nélkül. A CQL-támogatással rendelkező illesztőprogramok Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ és JavaScript (Node.js) számára készültek.

Főbb újítások:

  • Jobb teljesítmény és skálázhatóság. Javult a csomópontok közötti SSTable (Sorted Strings Table) formátumú adatcsere hatékonysága. Az Internode Messaging Protocol optimalizálva lett. A csomópontok közötti adatfolyamok átvitelének sebessége akár 5-szörösére nőtt (főleg a Zero Copy technika alkalmazása és a teljes SST-táblák átvitele miatt), az olvasási és írási műveletek átviteli sebessége pedig 25%-ra nőtt. A fokozatos helyreállítási folyamat optimalizálva lett. A szemétszállítás szüneteltetése miatti késések néhány milliszekundumra csökkennek.
  • Hozzáadott támogatás egy auditnaplóhoz, amely lehetővé teszi a felhasználói hitelesítési műveletek és az összes végrehajtott CQL-lekérdezés nyomon követését.
  • Hozzáadtuk a teljes bináris kérésnapló karbantartásának lehetőségét, amely lehetővé teszi az összes kérés és válasz forgalom mentését. A kezeléshez a „nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog” parancsok javasoltak, a naplóelemzéshez pedig az fqltool segédprogram is rendelkezésre áll. Parancsok állnak rendelkezésre a napló olvasható formává alakításához (Dump), a tevékenységi szeletek összehasonlításához (Compare) és az újrafuttatáshoz (Replay) az elemzéshez, amely reprodukálja a valós terhelésben rejlő feltételeket.
  • Hozzáadott támogatás a virtuális táblákhoz, amelyek nem az SSTable-ban tárolt adatokat tükrözik, hanem az API-n keresztül kibocsátott információkat (teljesítménymérők, beállítások, gyorsítótár tartalma, csatlakoztatott ügyfelekre vonatkozó információk stb.).
  • Javult a tömörített adattárolás hatékonysága, csökkentve a lemezterület-felhasználást és javítva az olvasási teljesítményt.
  • A rendszerkulcstérrel (system.*) kapcsolatos adatok mostantól alapértelmezés szerint az első könyvtárba kerülnek, ahelyett, hogy az összes adatkönyvtár között szétosztanák őket, ami lehetővé teszi, hogy a csomópont működőképes maradjon, ha valamelyik további lemez meghibásodik.
  • Kísérleti támogatás hozzáadva az átmeneti replikációhoz és az olcsó kvórumokhoz. Az ideiglenes replikák nem tárolnak minden adatot, és növekményes visszaállítást használnak, hogy konzisztensek legyenek a teljes replikákkal. A könnyű kvórumok írásoptimalizálást valósítanak meg, amelynek során nem történik írás az ideiglenes replikákba mindaddig, amíg elegendő számú teljes replika nem áll rendelkezésre.
  • Kísérleti támogatás hozzáadva a Java 11-hez.
  • Kísérleti lehetőség hozzáadva az összes Merkle-fa összehasonlításához. Például, ha engedélyezi a beállítást egy 3 csomópontos fürtön, amelyben két replika azonos, az egyik pedig elavult, az elavult replika frissítését eredményezi az aktuális replika egyetlen másolási műveletével.
  • Hozzáadott új funkciók currentTimestamp, currentDate, currentTime és currentTimeUUID.
  • Hozzáadott támogatás az aritmetikai műveletekhez a CQL lekérdezésekben.
  • Lehetőség van az „időbélyeg”/”dátum” és „időtartam” típusú adatok közötti aritmetikai műveletek végrehajtására.
  • Hozzáadott egy módot a helyreállításhoz szükséges adatfolyamok előnézetéhez (nodetool javítás – előnézet), valamint a visszaállítandó adatok sértetlenségének ellenőrzésére (nodetool javítás – érvényesítés).
  • A KIVÁLASZTÁSI lekérdezések mostantól képesek a Térkép és a Beállítás elemek feldolgozására.
  • Támogatás hozzáadva a materializált nézetek kezdeti építési szakaszának párhuzamosításához (cassandra.yaml:concurrent_materialized_view_builders).
  • A "nodetool cfstats" parancs támogatja a bizonyos mutatók szerinti rendezést, és korlátozza a megjelenített sorok számát.
  • A beállítások csak bizonyos adatközpontokhoz korlátozzák a felhasználó csatlakozását.
  • Hozzáadtuk a pillanatkép-készítési és törlési műveletek intenzitásának (sebességkorlátjának) korlátozásának lehetőségét.
  • A cqlsh és a cqlshlib mostantól támogatja a Python 3-at (a Python 2.7 továbbra is támogatott).
  • A Windows platform támogatása megszűnt. A Cassandra Windows rendszeren való futtatásához javasolt a WSL2 alrendszer (Windows Subsystem for Linux 2) vagy virtualizációs rendszerek alapján létrehozott Linux környezetek használata.



Forrás: opennet.ru

Hozzászólás