Apache Cassandra 4.0 DBMS mövcuddur

Apache Software Foundation noSQL sistemləri sinfinə aid olan və assosiativ massiv (hesh) şəklində saxlanılan böyük həcmli məlumatların yüksək miqyaslı və etibarlı saxlanmasını yaratmaq üçün nəzərdə tutulmuş paylanmış DBMS Apache Cassandra 4.0 buraxılışını təqdim etdi. Cassandra 4.0 buraxılışı istehsal üçün hazır hesab olunur və artıq Amazon, Apple, DataStax, Instaclustr, iland və Netflix infrastrukturlarında 1000-dən çox qovşaqdan ibarət qruplarla sınaqdan keçirilib. Layihə kodu Java-da yazılmışdır və Apache 2.0 lisenziyası altında paylanmışdır.

Cassandra DBMS əvvəlcə Facebook tərəfindən hazırlanmış və 2009-cu ildə Apache Fondunun himayəsi altında köçürülmüşdür. Cassandra əsasında sənaye həlləri Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit və Twitter kimi şirkətlərin enerji xidmətlərinə tətbiq edilmişdir. Məsələn, Apple tərəfindən yerləşdirilən Apache Cassandra əsaslı saxlama infrastrukturu 160 min qovşaq və 100 petabaytdan çox məlumat saxlayan mindən çox klasterə malikdir. Huawei 300 min qovşaqdan ibarət 30-dən çox Apache Cassandra klasterindən istifadə edir, Netflix isə 100 min nodu əhatə edən və gündə bir trilyondan çox sorğunu emal edən 10-dən çox klasterdən istifadə edir.

Cassandra DBMS məlumatların həcmi artdıqca demək olar ki, xətti miqyaslılığı təmin edən tam paylanmış Dynamo hash sistemini birləşdirir. Cassandra sütun ailəsinə (ColumnFamily) əsaslanan məlumat saxlama modelindən istifadə edir ki, bu model məlumatı yalnız açar/dəyər zəncirində saxlayan memcachedb kimi sistemlərdən bir neçə səviyyəli yerləşdirmə ilə heşlərin saxlanmasını təşkil etmək imkanı ilə fərqlənir. Verilənlər bazası ilə qarşılıqlı əlaqəni sadələşdirmək üçün strukturlaşdırılmış sorğu dili CQL (Cassandra Query Language) dəstəklənir, bu SQL-i xatırladır, lakin funksionallığı azalır. Xüsusiyyətlərə ad boşluqları və sütun ailələri üçün dəstək və “İNDEKSİ YARAT” ifadəsindən istifadə edərək indekslərin yaradılması daxildir.

DBMS uğursuzluğa davamlı yaddaş yaratmağa imkan verir: verilənlər bazasına yerləşdirilən məlumatlar avtomatik olaraq müxtəlif məlumat mərkəzlərini əhatə edə bilən paylanmış şəbəkənin bir neçə qovşağına təkrarlanır. Bir node uğursuz olduqda, onun funksiyaları digər qovşaqlar tərəfindən tez seçilir. Klasterə yeni qovşaqların əlavə edilməsi və Cassandra versiyasının yenilənməsi əlavə əl müdaxiləsi və ya digər qovşaqların konfiqurasiyası olmadan tez həyata keçirilir. CQL dəstəyi ilə sürücülər Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ və JavaScript (Node.js) üçün hazırlanır.

Əsas yeniliklər:

  • Təkmilləşdirilmiş performans və miqyaslılıq. Qovşaqlar arasında SSTable (Sorted Strings Table) formatında məlumat mübadiləsinin səmərəliliyi artırılıb. Internode Mesajlaşma Protokolu optimallaşdırılıb. Məlumat axınının qovşaqlar arasında ötürülmə sürəti 5 dəfəyə qədər artıb (əsasən Zero Copy texnikasının istifadəsi və bütün SSTables-in ötürülməsi hesabına), oxumaq və yazma əməliyyatları üçün ötürmə qabiliyyəti isə 25%-ə qədər yüksəlib. Artan bərpa prosesi optimallaşdırılıb. Zibil yığımının dayandırılması ilə bağlı gecikmələr bir neçə millisaniyəyə qədər azaldılır.
  • İstifadəçi autentifikasiyası əməliyyatlarını və bütün icra edilmiş CQL sorğularını izləməyə imkan verən audit jurnalı üçün əlavə dəstək.
  • Bütün sorğu və cavab trafikini saxlamağa imkan verən tam ikili sorğu jurnalını saxlamaq imkanı əlavə edildi. İdarəetmə üçün “nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog” əmrləri təklif olunur və log analizi üçün fqltool yardım proqramı təqdim olunur. Əmrlər jurnalı oxunaqlı formaya çevirmək (Dump), fəaliyyət dilimlərini müqayisə etmək (Müqayisə et) və real yükə xas olan şərtləri təkrarlayan təhlil üçün yenidən icra etmək (Təkrar) üçün verilir.
  • SSTables-də saxlanılan məlumatları deyil, API vasitəsilə məlumat çıxışını əks etdirən virtual cədvəllər üçün əlavə dəstək (performans ölçüləri, parametrlər haqqında məlumat, keş məzmunu, əlaqəli müştərilər haqqında məlumat və s.).
  • Sıxılmış məlumatların saxlanmasının səmərəliliyi yaxşılaşdırılıb, diskdə yer sərfiyyatı azaldılıb və oxu performansı yaxşılaşdırılıb.
  • Sistem düymələr məkanı (sistem.*) ilə əlaqəli məlumatlar indi bütün məlumat qovluqları arasında paylanmamaq əvəzinə, defolt olaraq birinci kataloqda yerləşdirilir ki, bu da əlavə disklərdən biri uğursuz olarsa, node işləməyə imkan verir.
  • Transient Replikasiya və Ucuz Kvorumlar üçün eksperimental dəstək əlavə edildi. Müvəqqəti replikalar bütün məlumatları saxlamır və tam replikalara uyğun olmaq üçün artımlı bərpadan istifadə edir. Yüngül kvorumlar kifayət qədər tam replika dəsti mövcud olana qədər müvəqqəti replikalara heç bir yazının edilmədiyi yazma optimallaşdırmasını həyata keçirir.
  • Java 11 üçün eksperimental dəstək əlavə edildi.
  • Bütün Merkle ağaclarını müqayisə etmək üçün eksperimental seçim əlavə edildi. Məsələn, iki replikanın eyni, birinin köhnəlmiş olduğu 3 qovşaqlı klasterdə seçimi aktivləşdirmək cari replikanın yalnız bir surət əməliyyatından istifadə edərək köhnəlmiş replikanın yenilənməsi ilə nəticələnəcək.
  • CariTimestamp, currentDate, currentTime və currentTimeUUID yeni funksiyaları əlavə edildi.
  • CQL sorğularında arifmetik əməliyyatlar üçün əlavə dəstək.
  • “Vaxt damğası”/”tarix” və “müddət” tipləri ilə verilənlər arasında hesab əməliyyatlarını yerinə yetirmək imkanı təmin edilir.
  • Bərpa üçün tələb olunan məlumat axınlarına baxış rejimi (nodetool təmiri —öncədən baxış) və bərpa edilən məlumatların bütövlüyünü yoxlamaq imkanı (nodetool təmiri —validate) əlavə edilib.
  • SELECT sorğuları indi Xəritə və Set elementlərini emal etmək imkanına malikdir.
  • Maddiləşdirilmiş görünüşlərin ilkin tikinti mərhələsini paralelləşdirmək üçün əlavə dəstək (cassandra.yaml:concurrent_materialized_view_builders).
  • "Nodetool cfstats" əmri müəyyən ölçülərə görə çeşidləmə və göstərilən cərgələrin sayını məhdudlaşdırmaq üçün dəstək əlavə etdi.
  • Parametrlər istifadəçinin yalnız müəyyən məlumat mərkəzləri ilə əlaqəsini məhdudlaşdırmaq üçün verilir.
  • Snapshot yaratmaq və təmizləmə əməliyyatlarının intensivliyini (dərəcə həddi) məhdudlaşdırmaq imkanı əlavə edildi.
  • cqlsh və cqlshlib indi Python 3-ü dəstəkləyir (Python 2.7 hələ də dəstəklənir).
  • Windows platforması üçün dəstək dayandırılıb. Cassandra-nı Windows-da işə salmaq üçün WSL2 alt sistemi (Linux 2 üçün Windows Alt Sistemi) və ya virtualizasiya sistemləri əsasında yaradılmış Linux mühitlərindən istifadə etmək tövsiyə olunur.



Mənbə: opennet.ru

Добавить комментарий