Достапен е 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 првично беше развиен од Фејсбук и во 2009 година беше пренесен под покровителство на Фондацијата Апачи. Индустриските решенија засновани на Касандра се распоредени на услуги за напојување од компании како што се 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 комбинира целосно дистрибуиран Dynamo хаш систем, кој обезбедува речиси линеарна приспособливост како што се зголемува обемот на податоци. Касандра користи модел за складирање податоци базиран на фамилија на колони (ColumnFamily), кој се разликува од системите како memcachedb, кои складираат податоци само во синџир на клучеви/вредности, со способноста да организира складирање на хешови со неколку нивоа на вгнездување. За да се поедностави интеракцијата со базата на податоци, поддржан е структуриран јазик за пребарување CQL (Cassandra Query Language), кој потсетува на SQL, но со намалена функционалност. Карактеристиките вклучуваат поддршка за именски простори и фамилии на колони и создавање на индекси со помош на изразот „СОЗДАЈ ИНДЕКС“.

DBMS ви овозможува да креирате складирање отпорно на дефекти: податоците сместени во базата автоматски се реплицираат на неколку јазли на дистрибуирана мрежа, кои можат да опфаќаат различни центри за податоци. Кога некој јазол не успее, неговите функции се подигнуваат на лет од други јазли. Додавањето нови јазли во кластерот и ажурирањето на верзијата на Касандра се прави на лет, без дополнителна рачна интервенција или реконфигурирање на други јазли. Возачите со CQL поддршка се подготвени за Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ и JavaScript (Node.js).

Главните иновации:

  • Подобрени перформанси и приспособливост. Ефикасноста на размена на податоци во формат SSTable (Sorted String Table) помеѓу јазлите е подобрена. Протоколот за размена на пораки Internode е оптимизиран. Брзината на пренос на потоци на податоци помеѓу јазлите е зголемена до 5 пати (главно поради употребата на техниката Zero Copy и преносот на цели SSTables), а пропусната моќ за операциите за читање и запишување е зголемена на 25%. Процесот на постепено обновување е оптимизиран. Латенциите поради паузирање на собирањето ѓубре се намалуваат на неколку милисекунди.
  • Додадена е поддршка за дневник за ревизија што ви овозможува да ги следите операциите за автентикација на корисникот и сите извршени CQL барања.
  • Додадена е способност за одржување на целосен дневник за бинарни барања, што ви овозможува да го зачувате целиот сообраќај на барања и одговори. За управување, се предлагаат командите „nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog“, а алатката fqltool е обезбедена за анализа на дневниците. Обезбедени се команди за конвертирање на дневникот во читлива форма (Dump), споредување на парчиња активност (Спореди) и повторно извршување (Replay) за анализа репродуцирајќи ги условите својствени за вистинското оптоварување.
  • Додадена е поддршка за виртуелни табели кои не рефлектираат податоци зачувани во SSTables, туку излезни информации преку API (метрика на перформанси, информации за поставките, содржина на кешот, информации за поврзани клиенти итн.).
  • Ефикасноста на складирањето на компресирани податоци е подобрена, намалувајќи ја потрошувачката на простор на дискот и подобрувајќи ги перформансите за читање.
  • Податоците поврзани со системскиот клучен простор (систем.*) сега стандардно се ставаат во првиот директориум наместо да се дистрибуираат низ сите директориуми со податоци, што му овозможува на јазолот да остане оперативен ако некој од дополнителните дискови не успее.
  • Додадена е експериментална поддршка за минлива репликација и евтини кворуми. Привремените реплики не ги складираат сите податоци и користат постепено обновување за да бидат конзистентни со целосните реплики. Лесните кворуми имплементираат оптимизација за запишување во која не се прават запишувања на привремени реплики додека не се достапни доволен сет на целосни реплики.
  • Додадена е експериментална поддршка за Java 11.
  • Додадена е експериментална опција за споредување на сите дрвја на Меркл. На пример, овозможувањето на опцијата на кластер со 3 јазли во кој две реплики се идентични, а една е застарена, ќе резултира со ажурирање на застарената реплика користејќи само една операција за копирање на тековната реплика.
  • Додадени се нови функции: тековно време-печат, тековен датум, тековно време и тековно време UUID.
  • Додадена е поддршка за аритметички операции во CQL барања.
  • Обезбедена е можност за извршување аритметички операции помеѓу податоци со типови „временски печат“/„датум“ и „времетраење“.
  • Додаден е режим за прегледување на потоци на податоци потребни за обновување (поправка на јазли — преглед) и можност за проверка на интегритетот на податоците што се обновуваат (поправка на јазли — валидација).
  • Прашањата SELECT сега имаат можност да обработуваат елементи на Map и Set.
  • Додадена е поддршка за паралелизирање на почетната фаза на изградба на материјализираните погледи (cassandra.yaml:concurrent_materialized_view_builders).
  • Командата „nodetool cfstats“ додаде поддршка за сортирање по одредени метрики и ограничување на бројот на прикажани редови.
  • Обезбедени се поставки за ограничување на поврзувањето на корисникот само со одредени центри за податоци.
  • Додадена е способност да се ограничи интензитетот (ограничување на стапката) на креирањето снимки и операциите за чистење.
  • cqlsh и cqlshlib сега поддржуваат Python 3 (Python 2.7 сè уште е поддржан).
  • Поддршката за платформата Виндоус е прекината. За извршување на Cassandra на Windows, се препорачува да се користат околини на Linux создадени врз основа на потсистемот WSL2 (Windows Подсистем за Linux 2) или системи за виртуелизација.



Извор: opennet.ru

Додадете коментар