Apache Cassandra 4.0 DBMS дастрас аст

Бунёди нармафзори Apache нашри DBMS-и тақсимшудаи Apache Cassandra 4.0-ро муаррифӣ кард, ки ба синфи системаҳои noSQL тааллуқ дорад ва барои эҷоди нигаҳдории хеле миқёспазир ва боэътимоди миқдори зиёди додаҳои дар шакли массиви ассотсиативӣ (хэш) нигоҳ дошташуда пешбинӣ шудааст. Нашри Cassandra 4.0 барои татбиқи истеҳсолот омода ҳисобида мешавад ва аллакай дар инфрасохтори Amazon, Apple, DataStax, Instaclustr, iland ва Netflix бо кластерҳои зиёда аз 1000 гиреҳ озмуда шудааст. Рамзи лоиҳа дар Java навишта шудааст ва таҳти иҷозатномаи Apache 2.0 паҳн карда мешавад.

DBMS Кассандра аслан аз ҷониби Facebook таҳия шуда буд ва дар соли 2009 таҳти сарпарастии Бунёди Apache интиқол дода шуд. Қарорҳои саноатӣ дар асоси Кассандра барои хидматрасонии энергетикӣ аз ширкатҳо ба монанди Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit ва Twitter ҷойгир карда шудаанд. Масалан, инфрасохтори нигаҳдории Apache Cassandra, ки аз ҷониби Apple ҷойгир шудааст, дорои беш аз ҳазор кластер, аз ҷумла 160 ҳазор гиреҳ ва нигоҳ доштани беш аз 100 петабайт маълумот мебошад. Huawei беш аз 300 кластери Apache Cassandra-ро истифода мебарад, ки аз 30 ҳазор гиреҳ иборат аст ва Netflix беш аз 100 кластерро истифода мебарад, ки 10 ҳазор гиреҳро фаро мегиранд ва дар як рӯз беш аз як триллион дархостро коркард мекунанд.

DBMS Cassandra як системаи хэши пурра тақсимшудаи Динаморо муттаҳид мекунад, ки миқёспазирии қариб хатиро бо афзоиши ҳаҷми маълумот таъмин мекунад. Кассандра модели нигаҳдории маълумотро дар асоси оилаи сутунҳо (ColumnFamily) истифода мебарад, ки аз системаҳое мисли memcachedb, ки маълумотро танҳо дар занҷири калид/арзиш нигоҳ медорад, бо қобилияти ташкили нигоҳдории хэшҳо бо якчанд сатҳҳои лона фарқ мекунад. Барои содда кардани ҳамкорӣ бо пойгоҳи додаҳо, забони сохтории дархости CQL (Cassandra Query Language) дастгирӣ карда мешавад, ки он SQL-ро ба хотир меорад, аммо дар функсияҳо кам шудааст. Хусусиятҳо дастгирии фазои номҳо ва оилаҳои сутунҳо ва эҷоди индексҳо бо истифода аз ифодаи "CREATE INDEX" -ро дар бар мегиранд.

DBMS ба шумо имкон медиҳад, ки нигаҳдории ба нокомӣ тобовар эҷод кунед: маълумоти дар пойгоҳи додаҳо ҷойгиршуда ба таври худкор ба якчанд гиреҳҳои шабакаи тақсимшуда такрор карда мешаванд, ки метавонанд марказҳои гуногуни маълумотро фаро гиранд. Вақте ки гиреҳ ноком мешавад, вазифаҳои он аз ҷониби гиреҳҳои дигар фавран гирифта мешаванд. Илова кардани гиреҳҳои нав ба кластер ва навсозии версияи Кассандра бидуни дахолати дастӣ ё аз нав танзимкунии гиреҳҳои дигар фавран анҷом дода мешавад. Ронандагон бо дастгирии CQL барои Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ ва JavaScript (Node.js) омода карда шудаанд.

Навовариҳои асосӣ:

  • Иҷрои беҳтар ва миқёспазирӣ. Самаранокии мубодилаи маълумот дар формати SSTable (Sorted Strings Table) байни гиреҳҳо беҳтар шудааст. Протоколи паёмнависии байниноддӣ оптимизатсия карда шудааст. Суръати интиқоли ҷараёнҳои додаҳо байни гиреҳҳо то 5 маротиба зиёд шуд (асосан аз ҳисоби истифодаи техникаи Zero Copy ва интиқоли тамоми SSTables) ва қобилияти интиқол барои амалиёти хондан ва навиштан то 25% афзуд. Раванди барқарорсозии афзоянда оптимизатсия карда шудааст. Вақтҳои таъхир дар натиҷаи таваққуфи ҷамъоварии ахлот ба чанд миллисония кам карда мешаванд.
  • Дастгирии иловашуда барои сабти аудит, ки ба шумо имкон медиҳад амалиёти тасдиқи корбар ва ҳама дархостҳои иҷрошудаи CQL-ро пайгирӣ кунед.
  • Имконияти нигоҳ доштани сабти пурраи дархостҳои дуӣ илова карда шудааст, ки ба шумо имкон медиҳад, ки тамоми трафики дархост ва посухро захира кунед. Барои идора фармонҳои "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" пешниҳод карда мешаванд ва утилитаи fqltool барои таҳлили гузоришҳо таъмин карда мешавад. Фармонҳо барои табдил додани сабт ба шакли хондашаванда (Dump), муқоисаи буридаҳои фаъолият (Муқоиса кардан) ва дубора иҷро кардан (Бозинг) барои таҳлил, ки шароитҳои ба сарбории воқеӣ хосро таҷдид мекунанд, дода мешаванд.
  • Дастгирии иловашуда барои ҷадвалҳои виртуалӣ, ки на маълумоти дар SSTables нигоҳ дошташударо инъикос мекунанд, балки баромади иттилоот тавассути API (метрикаи иҷроиш, маълумоти танзимот, мундариҷаи кэш, маълумот дар бораи мизоҷони пайваст ва ғайра).
  • Самаранокии нигоҳдории маълумотҳои фишурда беҳтар карда шуда, масрафи фазои дискро коҳиш дод ва кори хонишро беҳтар кард.
  • Маълумоти марбут ба фазои калидҳои система (система.*) ҳоло ба ҷои он ки дар тамоми директорияҳои додаҳо тақсим карда шавад, ба таври нобаёнӣ дар директорияи якум ҷойгир карда мешавад, ки ин имкон медиҳад, ки гиреҳ дар ҳолати нокомии яке аз дискҳои иловагӣ фаъол боқӣ монад.
  • Дастгирии таҷрибавӣ барои такрори муваққатӣ ва кворумҳои арзон илова карда шуд. Репликаҳои муваққатӣ на ҳама маълумотро нигоҳ медоранд ва барқароркунии афзояндаро истифода мебаранд, то бо репликаҳои пурра мувофиқ бошанд. Кворумҳои равшанӣ оптимизатсияи навиштанро амалӣ мекунанд, ки дар он то дастрас шудани маҷмӯи кофии репликаҳои мукаммал ҳеҷ гуна навиштан ба репликаҳои муваққатӣ анҷом дода намешавад.
  • Дастгирии таҷрибавӣ барои Java 11 илова карда шуд.
  • Варианти таҷрибавӣ барои муқоисаи ҳамаи дарахтони Merkle илова карда шуд. Масалан, фаъол кардани хосият дар кластери 3-гиреҳ, ки дар он ду нусхаи якхела ва яке кӯҳна аст, боиси навсозии нусхаи кӯҳна бо истифода аз танҳо як амалиёти нусхабардории ҷорӣ мегардад.
  • Функсияҳои нави currentTimestamp, currentDate, currentTime ва currentTimeUUID илова карда шуданд.
  • Дастгирии иловашуда барои амалиёти арифметикӣ дар дархостҳои CQL.
  • Имконияти иҷрои амалҳои арифметикӣ байни додаҳо бо намудҳои “тамга”/”сана” ва “давомнокӣ” таъмин карда шудааст.
  • Ҳолати пешнамоиши ҷараёнҳои додаҳо, ки барои барқарорсозӣ лозиманд (таъмири nodetool — пешнамоиш) ва қобилияти тафтиши якпорчагии маълумоти барқароршаванда (таъмири гиреҳ — тасдиқ).
  • Ҳоло дархостҳои SELECT қобилияти коркарди унсурҳои Харита ва Танзимро доранд.
  • Дастгирии иловашуда барои параллелизатсияи марҳилаи ибтидоии сохтмони манзараҳои моддӣ (cassandra.yaml: concurrent_materialized_view_builders).
  • Фармони "nodetool cfstats" барои мураттабсозӣ аз рӯи ченакҳои муайян ва маҳдуд кардани шумораи сатрҳои намоишшуда дастгирӣ илова кардааст.
  • Танзимотҳо барои маҳдуд кардани пайвасти корбар танҳо бо марказҳои муайяни додаҳо пешбинӣ шудаанд.
  • Қобилияти маҳдуд кардани шиддати (маҳдудияти суръати) эҷоди аксҳо ва амалиёти тозакунӣ илова карда шуд.
  • cqlsh ва cqlshlib ҳоло Python 3-ро дастгирӣ мекунанд (Python 2.7 то ҳол дастгирӣ карда мешавад).
  • Дастгирии платформаи Windows қатъ карда шуд. Барои ба кор даровардани Кассандра дар Windows тавсия дода мешавад, ки муҳитҳои Linux-ро, ки дар асоси зерсистемаи WSL2 (Windows Subsystem for Linux 2) ё системаҳои виртуализатсия сохта шудаанд, истифода баред.



Манбаъ: opennet.ru

Илова Эзоҳ