Apache Cassandra 4.0 DBMS mavjud

Apache Software Foundation noSQL tizimlari sinfiga kiruvchi va assotsiativ massiv (xesh) ko'rinishida saqlanadigan katta hajmdagi ma'lumotlarni ishonchli saqlashni yaratish uchun mo'ljallangan Apache Cassandra 4.0 tarqatilgan DBMSning chiqarilishini taqdim etdi. Cassandra 4.0 versiyasi ishlab chiqarishga tayyor deb hisoblanadi va u allaqachon Amazon, Apple, DataStax, Instaclustr, iland va Netflix infratuzilmalarida 1000 dan ortiq tugunlardan iborat klasterlar bilan sinovdan o'tgan. Loyiha kodi Java-da yozilgan va Apache 2.0 litsenziyasi ostida tarqatiladi.

Cassandra DBMS dastlab Facebook tomonidan ishlab chiqilgan va 2009 yilda Apache Foundation homiyligida topshirilgan. Kassandraga asoslangan sanoat yechimlari Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit va Twitter kabi kompaniyalarning energiya xizmatlariga o'rnatildi. Misol uchun, Apple tomonidan o'rnatilgan Apache Cassandra asosidagi saqlash infratuzilmasi mingdan ortiq klasterga ega, jumladan 160 ming tugun va 100 petabaytdan ortiq ma'lumotlarni saqlaydi. Huawei 300 dan ortiq Apache Cassandra klasterlaridan foydalanadi, shu jumladan 30 ming tugun, Netflix esa 100 dan ortiq klasterlardan foydalanadi, ular kuniga 10 ming tugunni qamrab oladi va trilliondan ortiq so‘rovlarni qayta ishlaydi.

Cassandra DBMS to'liq taqsimlangan Dynamo xesh tizimini o'zida mujassam etgan bo'lib, u ma'lumotlar hajmi ortib borishi bilan deyarli chiziqli o'lchovni ta'minlaydi. Kassandra ustunlar oilasiga (ColumnFamily) asoslangan maʼlumotlarni saqlash modelidan foydalanadi, u maʼlumotlarni faqat kalit/qiymat zanjirida saqlaydigan memcachedb kabi tizimlardan bir necha darajadagi joylashtirish bilan xeshlarni saqlashni tashkil qilish qobiliyati bilan farq qiladi. Ma'lumotlar bazasi bilan o'zaro aloqani soddalashtirish uchun tizimli so'rovlar tili CQL (Cassandra Query Language) qo'llab-quvvatlanadi, bu SQLni eslatadi, lekin funksionalligi kamaygan. Xususiyatlarga nomlar bo'shliqlari va ustunlar oilalarini qo'llab-quvvatlash va "INDEX CREATE INDEX" iborasi yordamida indekslarni yaratish kiradi.

DBMS sizga nosozliklarga chidamli saqlashni yaratishga imkon beradi: ma'lumotlar bazasiga joylashtirilgan ma'lumotlar avtomatik ravishda taqsimlangan tarmoqning bir nechta tugunlariga takrorlanadi, ular turli ma'lumotlar markazlarini qamrab oladi. Agar tugun ishlamay qolsa, uning funktsiyalari boshqa tugunlar tomonidan tezda qabul qilinadi. Klasterga yangi tugunlarni qo'shish va Cassandra versiyasini yangilash qo'shimcha qo'lda aralashuvisiz yoki boshqa tugunlarni qayta sozlashsiz tezda amalga oshiriladi. CQL-ni qo'llab-quvvatlaydigan drayverlar Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ va JavaScript (Node.js) uchun tayyorlangan.

Asosiy innovatsiyalar:

  • Yaxshilangan ishlash va miqyoslilik. Tugunlar o‘rtasida SSTable (Sorted Strings Table) formatida ma’lumotlar almashinuvi samaradorligi oshirildi. Internode Messaging Protocol optimallashtirildi. Tugunlar o'rtasida ma'lumotlar oqimini uzatish tezligi 5 baravargacha oshdi (asosan Zero Copy texnikasidan foydalanish va butun SSTablesni uzatish hisobiga), o'qish va yozish operatsiyalarini o'tkazish qobiliyati esa 25% gacha oshdi. Incremental qayta tiklash jarayoni optimallashtirildi. Axlat yig'ish to'xtatilishi tufayli kechikishlar bir necha millisekundlarga qisqaradi.
  • Foydalanuvchi autentifikatsiya operatsiyalari va barcha bajarilgan CQL so'rovlarini kuzatish imkonini beruvchi audit jurnali uchun qo'shimcha yordam.
  • Ikkilik soʻrovlar jurnalini toʻliq saqlash imkoniyati qoʻshildi, bu sizga barcha soʻrov va javob trafigini saqlash imkonini beradi. Boshqaruv uchun “nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog” buyruqlari taklif qilinadi va jurnalni tahlil qilish uchun fqltool yordam dasturi taqdim etiladi. Jurnalni o'qilishi mumkin bo'lgan shaklga (Dump) aylantirish, faoliyat bo'laklarini solishtirish (taqqoslash) va tahlil qilish uchun qayta bajarish (qayta o'ynash) uchun buyruqlar haqiqiy yukga xos bo'lgan shartlarni takrorlaydi.
  • SSTables-da saqlangan ma'lumotlarni emas, balki API orqali ma'lumot chiqishini aks ettiruvchi virtual jadvallar uchun qo'shimcha qo'llab-quvvatlash (ishlash ko'rsatkichlari, sozlamalar ma'lumotlari, kesh tarkibi, ulangan mijozlar haqidagi ma'lumotlar va boshqalar).
  • Siqilgan ma'lumotlarni saqlash samaradorligi oshirildi, disk maydoni sarfini kamaytiradi va o'qish samaradorligini oshiradi.
  • Tizim kalit maydoni (system.*) bilan bog'liq ma'lumotlar endi barcha ma'lumotlar kataloglari bo'ylab taqsimlanish o'rniga sukut bo'yicha birinchi katalogga joylashtiriladi, bu esa qo'shimcha disklardan biri ishlamay qolganda tugunning ishlashini ta'minlaydi.
  • Vaqtinchalik replikatsiya va arzon kvorumlar uchun eksperimental yordam qo'shildi. Vaqtinchalik nusxalar barcha ma'lumotlarni saqlamaydi va to'liq nusxalarga mos kelishi uchun bosqichma-bosqich tiklashdan foydalanadi. Yengil kvorumlar yozishni optimallashtirishni amalga oshiradi, bunda to'liq nusxalarning etarli to'plami mavjud bo'lmaguncha vaqtinchalik nusxalarga hech qanday yozish amalga oshirilmaydi.
  • Java 11 uchun tajribaviy yordam qoʻshildi.
  • Barcha Merkle daraxtlarini solishtirish uchun eksperimental variant qo'shildi. Masalan, ikkita replika bir xil va bittasi eski bo'lgan 3 tugunli klasterda opsiyani yoqish joriy replikaning faqat bitta nusxa ko'chirish operatsiyasidan foydalangan holda eskirgan nusxaning yangilanishiga olib keladi.
  • Yangi joriyTimestamp, currentDate, currentTime va currentTimeUUID funksiyalari qo'shildi.
  • CQL so'rovlarida arifmetik operatsiyalar uchun qo'shimcha yordam.
  • "Vaqt tamg'asi"/"sana" va "davomiylik" turlari bilan ma'lumotlar o'rtasida arifmetik amallarni bajarish imkoniyati taqdim etiladi.
  • Qayta tiklash uchun zarur bo'lgan ma'lumotlar oqimini oldindan ko'rish rejimi qo'shildi (tugunni tuzatish - oldindan ko'rish) va tiklanayotgan ma'lumotlarning yaxlitligini tekshirish qobiliyati (tugunni tuzatish - tekshirish).
  • SELECT so'rovlari endi Xarita va Set elementlarini qayta ishlash imkoniyatiga ega.
  • Moddiylashtirilgan ko'rinishlarning dastlabki qurilish bosqichini parallellashtirish uchun qo'shimcha yordam (cassandra.yaml: concurrent_materialized_view_builders).
  • "Nodetool cfstats" buyrug'i ma'lum ko'rsatkichlar bo'yicha saralash va ko'rsatiladigan qatorlar sonini cheklash uchun qo'shimcha yordam berdi.
  • Sozlamalar foydalanuvchining faqat ma'lum ma'lumotlar markazlariga ulanishini cheklash uchun taqdim etilgan.
  • Suratlarni yaratish va tozalash operatsiyalarining intensivligini (stavka chegarasi) cheklash imkoniyati qo'shildi.
  • cqlsh va cqlshlib endi Python 3-ni qo'llab-quvvatlaydi (Python 2.7 hali ham qo'llab-quvvatlanadi).
  • Windows platformasini qo'llab-quvvatlash to'xtatildi. Kassandrani Windows tizimida ishga tushirish uchun WSL2 quyi tizimi (Linux 2 uchun Windows Subsystem) yoki virtualizatsiya tizimlari asosida yaratilgan Linux muhitlaridan foydalanish tavsiya etiladi.



Manba: opennet.ru

a Izoh qo'shish