Pieejama Apache Cassandra 4.0 DBVS

Apache Software Foundation iepazīstināja ar izplatītās DBMS Apache Cassandra 4.0 izlaidumu, kas pieder noSQL sistēmu klasei un ir paredzēts, lai izveidotu ļoti mērogojamu un uzticamu milzīgu datu apjomu, kas tiek glabāts asociatīvā masīva (jaukšanas) formā. Cassandra 4.0 laidiens tiek uzskatīts par gatavu ražošanas ieviešanai, un tas jau ir pārbaudīts Amazon, Apple, DataStax, Instaclustr, iland un Netflix infrastruktūrās ar vairāk nekā 1000 mezglu klasteriem. Projekta kods ir rakstīts Java valodā un tiek izplatīts saskaņā ar Apache 2.0 licenci.

Cassandra DBVS sākotnēji izstrādāja Facebook, un 2009. gadā tā tika nodota Apache fonda aizgādībā. Rūpnieciskos risinājumus, kuru pamatā ir Cassandra, energopakalpojumos ir ieviesuši tādi uzņēmumi kā Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit un Twitter. Piemēram, Apple izvietotajā Apache Cassandra bāzes krātuves infrastruktūrā ir vairāk nekā tūkstotis klasteru, tostarp 160 tūkstoši mezglu un vairāk nekā 100 petabaitu datu. Huawei izmanto vairāk nekā 300 Apache Cassandra kopu, tostarp 30 tūkstošus mezglu, un Netflix izmanto vairāk nekā 100 kopu, aptverot 10 tūkstošus mezglu un apstrādājot vairāk nekā triljonu pieprasījumu dienā.

Cassandra DBVS apvieno pilnībā izkliedētu Dynamo hash sistēmu, kas nodrošina gandrīz lineāru mērogojamību, palielinoties datu apjomam. Cassandra izmanto datu glabāšanas modeli, kura pamatā ir kolonnu saime (ColumnFamily), kas atšķiras no tādām sistēmām kā memcachedb, kas glabā datus tikai atslēgu/vērtību ķēdē, ar spēju organizēt jaucējkodu uzglabāšanu ar vairākiem ligzdošanas līmeņiem. Lai vienkāršotu mijiedarbību ar datu bāzi, tiek atbalstīta strukturētā vaicājumu valoda CQL (Cassandra Query Language), kas atgādina SQL, bet ar samazinātu funkcionalitāti. Funkcijas ietver atbalstu nosaukumvietām un kolonnu saimēm, kā arī indeksu izveidi, izmantojot izteiksmi “CREATE INDEX”.

DBVS ļauj izveidot pret atteicēm izturīgu krātuvi: datubāzē ievietotie dati tiek automātiski replicēti vairākos sadalītā tīkla mezglos, kas var aptvert dažādus datu centrus. Ja mezgls neizdodas, tā funkcijas lidojuma laikā uztver citi mezgli. Jaunu mezglu pievienošana klasterim un Cassandra versijas atjaunināšana tiek veikta lidojuma laikā, bez papildu manuālas iejaukšanās vai citu mezglu pārkonfigurēšanas. Draiveri ar CQL atbalstu ir sagatavoti Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ un JavaScript (Node.js).

Galvenie jauninājumi:

  • Uzlabota veiktspēja un mērogojamība. Uzlabota datu apmaiņas efektivitāte SSTable (Sorted Strings Table) formātā starp mezgliem. Starpmezglu ziņojumapmaiņas protokols ir optimizēts. Datu straumju pārsūtīšanas ātrums starp mezgliem ir palielinājies līdz 5 reizēm (galvenokārt nulles kopijas tehnikas izmantošanas un visu SSTables pārsūtīšanas dēļ), un lasīšanas un rakstīšanas operāciju caurlaidspēja ir palielinājusies līdz 25%. Pakāpeniskās atkopšanas process ir optimizēts. Latences, kas rodas atkritumu savākšanas pauzes dēļ, tiek samazinātas līdz dažām milisekundēm.
  • Pievienots audita žurnāla atbalsts, kas ļauj izsekot lietotāja autentifikācijas operācijām un visiem izpildītajiem CQL vaicājumiem.
  • Pievienota iespēja uzturēt pilnu bināro pieprasījumu žurnālu, ļaujot saglabāt visu pieprasījumu un atbilžu trafiku. Pārvaldībai tiek piedāvātas komandas “nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog”, un žurnālu analīzei tiek nodrošināta utilīta fqltool. Tiek nodrošinātas komandas žurnāla pārveidošanai lasāmā formā (Dump), darbības slāņu salīdzināšanai (Salīdzināt) un atkārtotai izpildei (Replay) analīzei, kas reproducē reālajai slodzei raksturīgos apstākļus.
  • Pievienots atbalsts virtuālajām tabulām, kas atspoguļo nevis datus, kas tiek glabāti SSTables, bet gan informāciju, kas tiek izvadīta caur API (veiktspējas metrika, iestatījumu informācija, kešatmiņas saturs, informācija par pievienotajiem klientiem utt.).
  • Ir uzlabota saspiesto datu uzglabāšanas efektivitāte, samazinot diska vietas patēriņu un uzlabojot lasīšanas veiktspēju.
  • Dati, kas saistīti ar sistēmas atslēgvietu (sistēmu.*), tagad pēc noklusējuma tiek ievietoti pirmajā direktorijā, nevis tiek izplatīti visos datu direktorijos, kas ļauj mezglam turpināt darboties, ja kāds no papildu diskiem nedarbojas.
  • Pievienots eksperimentāls atbalsts īslaicīgai replikācijai un lētiem kvorumiem. Pagaidu replikās netiek glabāti visi dati un tiek izmantota pakāpeniska atjaunošana, lai nodrošinātu atbilstību pilnām replikām. Vieglie kvorumi ievieš rakstīšanas optimizāciju, kurā pagaidu replikās netiek veikta rakstīšana, kamēr nav pieejama pietiekama pilnu kopiju kopa.
  • Pievienots eksperimentāls Java 11 atbalsts.
  • Pievienota eksperimentāla iespēja salīdzināt visus Merkles kokus. Piemēram, iespējojot opciju 3 mezglu klasterī, kurā divas replikas ir identiskas un viena ir novecojusi, tiks atjaunināta novecojusi replika, izmantojot tikai vienu pašreizējās replikas kopēšanas darbību.
  • Pievienotas jaunas funkcijas currentTimestamp, currentDate, currentTime un currentTimeUUID.
  • Pievienots atbalsts aritmētiskām operācijām CQL vaicājumos.
  • Tiek nodrošināta iespēja veikt aritmētiskās darbības starp datiem ar tipiem “laikspiedols”/”datums” un “ilgums”.
  • Pievienots režīms atkopšanai nepieciešamo datu straumju priekšskatīšanai (nodetool remonts — priekšskatījums) un iespēja pārbaudīt atjaunojamo datu integritāti (nodetool remonts — validācija).
  • SELECT vaicājumiem tagad ir iespēja apstrādāt kartes un iestatīšanas elementus.
  • Pievienots atbalsts materializēto skatu (cassandra.yaml:concurrent_materialized_view_builders) sākotnējās izveides stadijas paralēlizēšanai.
  • Komandai "nodetool cfstats" ir pievienots atbalsts kārtošanai pēc noteiktiem rādītājiem un parādīto rindu skaita ierobežošanai.
  • Iestatījumi tiek nodrošināti, lai ierobežotu lietotāja savienojumu tikai ar noteiktiem datu centriem.
  • Pievienota iespēja ierobežot momentuzņēmumu izveides un dzēšanas darbību intensitāti (likmju ierobežojumu).
  • cqlsh un cqlshlib tagad atbalsta Python 3 (Python 2.7 joprojām tiek atbalstīts).
  • Windows platformas atbalsts ir pārtraukts. Lai palaistu Cassandra operētājsistēmā Windows, ieteicams izmantot Linux vides, kas izveidotas, pamatojoties uz WSL2 apakšsistēmu (Windows Subsystem for Linux 2) vai virtualizācijas sistēmas.



Avots: opennet.ru

Pievieno komentāru