Налична е СУБД Apache Cassandra 4.0

Софтуерната фондация Apache представи изданието на разпределената СУБД Apache Cassandra 4.0, която принадлежи към класа на noSQL системите и е предназначена да създаде високо мащабируемо и надеждно съхранение на огромни количества данни, съхранявани под формата на асоциативен масив (хеш). Изданието Cassandra 4.0 се счита за готово за производствено внедряване и вече е тествано в инфраструктурите на Amazon, Apple, DataStax, Instaclustr, iland и Netflix с клъстери от повече от 1000 възела. Кодът на проекта е написан на Java и се разпространява под лиценза Apache 2.0.

СУБД Cassandra първоначално е разработена от Facebook и през 2009 г. е прехвърлена под егидата на фондация Apache. Индустриални решения, базирани на Cassandra, са внедрени за захранване на услуги от компании като 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 хиляди възли и обработващи повече от трилион заявки на ден.

СУБД Cassandra съчетава напълно разпределена хеш система Dynamo, която осигурява почти линейна мащабируемост с увеличаване на обема на данните. Cassandra използва модел за съхранение на данни, базиран на семейство колони (ColumnFamily), което се различава от системи като memcachedb, които съхраняват данни само във верига ключ/стойност, по способността да организира съхранение на хешове с няколко нива на влагане. За да се опрости взаимодействието с базата данни, се поддържа структурираният език за заявки CQL (Cassandra Query Language), който напомня на SQL, но с намалена функционалност. Характеристиките включват поддръжка за пространства от имена и семейства колони и създаване на индекси с помощта на израза „CREATE INDEX“.

СУБД ви позволява да създавате устойчиво на откази хранилище: данните, поставени в базата данни, автоматично се копират в няколко възела на разпределена мрежа, която може да обхваща различни центрове за данни. Когато даден възел се повреди, неговите функции се поемат в движение от други възли. Добавянето на нови възли към клъстера и актуализирането на версията на Cassandra се извършва в движение, без допълнителна ръчна намеса или преконфигуриране на други възли. Подготвени са драйвери с CQL поддръжка за Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ и JavaScript (Node.js).

Основни иновации:

  • Подобрена производителност и мащабируемост. Ефективността на обмена на данни във формат SSTable (Sorted Strings Table) между възлите е подобрена. Internode Messaging Protocol е оптимизиран. Скоростта на прехвърляне на потоци от данни между възли се е увеличила до 5 пъти (главно поради използването на техниката Zero Copy и прехвърлянето на цели SSTables), а пропускателната способност за операции за четене и запис се е увеличила до 25%. Процесът на постепенно възстановяване е оптимизиран. Закъсненията, дължащи се на пауза на събирането на боклука, са намалени до няколко милисекунди.
  • Добавена е поддръжка за журнал за проверка, който ви позволява да проследявате операциите за удостоверяване на потребителя и всички изпълнени CQL заявки.
  • Добавена е възможност за поддържане на пълен двоичен регистър на заявките, което ви позволява да запазвате целия трафик на заявки и отговори. За управление се предлагат командите „nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog“ и помощната програма fqltool се доставя за анализ на регистрационни файлове. Осигурени са команди за преобразуване на дневника в четима форма (Dump), сравняване на срезове на активност (Compare) и повторно изпълнение (Replay) за анализ, възпроизвеждащ условията, присъщи на реалното натоварване.
  • Добавена е поддръжка за виртуални таблици, които отразяват не данни, съхранявани в SSTables, а информация, извеждана чрез API (показатели за производителност, информация за настройките, съдържание на кеша, информация за свързани клиенти и т.н.).
  • Ефективността на съхранението на компресирани данни е подобрена, намалява потреблението на дисково пространство и подобрява производителността на четене.
  • Данните, свързани със системното ключово пространство (system.*), вече се поставят в първата директория по подразбиране, вместо да бъдат разпределени във всички директории с данни, което позволява на възела да остане работещ, ако един от допълнителните дискове се повреди.
  • Добавена е експериментална поддръжка за преходна репликация и евтини кворуми. Временните реплики не съхраняват всички данни и използват инкрементално възстановяване, за да бъдат съвместими с пълните реплики. Леките кворуми прилагат оптимизация на запис, при която не се правят записи във временни реплики, докато не е наличен достатъчен набор от пълни реплики.
  • Добавена е експериментална поддръжка за Java 11.
  • Добавена е експериментална опция за сравняване на всички Merkle Trees. Например, активирането на опцията на клъстер с 3 възела, в който две реплики са идентични и едната е остаряла, ще доведе до актуализация на остарялата реплика, като се използва само една операция за копиране на текущата реплика.
  • Добавени са нови функции currentTimestamp, currentDate, currentTime и currentTimeUUID.
  • Добавена е поддръжка за аритметични операции в CQL заявки.
  • Осигурена е възможност за извършване на аритметични операции между данни с типовете “timestamp”/”date” и “duration”.
  • Добавен е режим за предварителен преглед на потоци от данни, необходими за възстановяване (nodetool repair —preview) и възможност за проверка на целостта на данните, които се възстановяват (nodetool repair —validate).
  • SELECT заявките вече имат способността да обработват Map и Set елементи.
  • Добавена е поддръжка за паралелизиране на началния етап на изграждане на материализирани изгледи (cassandra.yaml:concurrent_materialized_view_builders).
  • Командата "nodetool cfstats" добави поддръжка за сортиране по определени показатели и ограничаване на броя на показаните редове.
  • Предоставени са настройки за ограничаване на връзката на потребителя само с определени центрове за данни.
  • Добавена е възможност за ограничаване на интензивността (лимит на скоростта) на операциите за създаване и изчистване на моментни снимки.
  • cqlsh и cqlshlib вече поддържат Python 3 (Python 2.7 все още се поддържа).
  • Поддръжката за платформата Windows е преустановена. За да стартирате Cassandra на Windows, се препоръчва да използвате Linux среди, създадени на базата на подсистемата WSL2 (подсистема на Windows за Linux 2) или системи за виртуализация.



Източник: opennet.ru

Добавяне на нов коментар