Apache Cassandra 4.0 DBMS tersedia

Apache Software Foundation mempresentasikan rilis DBMS terdistribusi Apache Cassandra 4.0, yang termasuk dalam kelas sistem noSQL dan dirancang untuk menciptakan penyimpanan yang sangat skalabel dan andal dari sejumlah besar data yang disimpan dalam bentuk array asosiatif (hash). Rilis Cassandra 4.0 dianggap siap untuk implementasi produksi dan telah diuji di infrastruktur Amazon, Apple, DataStax, Instaclustr, iland dan Netflix dengan cluster lebih dari 1000 node. Kode proyek ditulis dalam Java dan didistribusikan di bawah lisensi Apache 2.0.

Cassandra DBMS awalnya dikembangkan oleh Facebook dan pada tahun 2009 dipindahkan ke bawah naungan Apache Foundation. Solusi industri berdasarkan Cassandra telah diterapkan untuk mendukung layanan dari perusahaan seperti Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit, dan Twitter. Misalnya, infrastruktur penyimpanan berbasis Apache Cassandra yang diterapkan oleh Apple memiliki lebih dari seribu cluster, termasuk 160 ribu node dan menyimpan lebih dari 100 petabyte data. Huawei menggunakan lebih dari 300 cluster Apache Cassandra, yang terdiri dari 30 ribu node, dan Netflix menggunakan lebih dari 100 cluster, mencakup 10 ribu node dan memproses lebih dari satu triliun permintaan per hari.

Cassandra DBMS menggabungkan sistem hash Dynamo yang terdistribusi penuh, yang memberikan skalabilitas hampir linier seiring dengan meningkatnya volume data. Cassandra menggunakan model penyimpanan data berdasarkan keluarga kolom (ColumnFamily), yang berbeda dari sistem seperti memcachedb, yang menyimpan data hanya dalam rantai kunci/nilai, dengan kemampuan mengatur penyimpanan hash dengan beberapa tingkat bersarang. Untuk menyederhanakan interaksi dengan database, bahasa kueri terstruktur CQL (Cassandra Query Language) didukung, yang mengingatkan pada SQL, tetapi fungsinya dikurangi. Fitur-fiturnya mencakup dukungan untuk namespace dan kelompok kolom, serta pembuatan indeks menggunakan ekspresi “CREATE INDEX”.

DBMS memungkinkan Anda membuat penyimpanan tahan kegagalan: data yang ditempatkan dalam database secara otomatis direplikasi ke beberapa node jaringan terdistribusi, yang dapat menjangkau pusat data yang berbeda. Ketika sebuah node gagal, fungsinya diambil dengan cepat oleh node lain. Menambahkan node baru ke cluster dan memperbarui versi Cassandra dilakukan dengan cepat, tanpa intervensi manual tambahan atau mengkonfigurasi ulang node lainnya. Driver dengan dukungan CQL disiapkan untuk Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ dan JavaScript (Node.js).

Inovasi utama:

  • Peningkatan kinerja dan skalabilitas. Efisiensi pertukaran data dalam format SSTable (Sorted Strings Table) antar node telah ditingkatkan. Protokol Pesan Internode telah dioptimalkan. Kecepatan transfer aliran data antar node telah meningkat hingga 5 kali lipat (terutama karena penggunaan teknik Zero Copy dan transfer seluruh SSTable), dan throughput untuk operasi baca dan tulis telah meningkat hingga 25%. Proses pemulihan bertahap telah dioptimalkan. Latensi karena jeda pengumpulan sampah dikurangi menjadi beberapa milidetik.
  • Menambahkan dukungan untuk log audit yang memungkinkan Anda melacak operasi autentikasi pengguna dan semua kueri CQL yang dijalankan.
  • Menambahkan kemampuan untuk memelihara log permintaan biner lengkap, memungkinkan Anda menyimpan semua lalu lintas permintaan dan respons. Untuk manajemen, perintah “nodetool aktifkanfullquerylog|disablefullquerylog|resetfullquerylog” diusulkan, dan utilitas fqltool disediakan untuk analisis log. Perintah disediakan untuk mengubah log menjadi bentuk yang dapat dibaca (Dump), membandingkan irisan aktivitas (Bandingkan) dan mengeksekusi ulang (Putar Ulang) untuk analisis yang mereproduksi kondisi yang melekat pada beban sebenarnya.
  • Menambahkan dukungan untuk tabel virtual yang tidak mencerminkan data yang disimpan di SSTables, tetapi keluaran informasi melalui API (metrik kinerja, informasi pengaturan, konten cache, informasi tentang klien yang terhubung, dll.).
  • Efisiensi penyimpanan data terkompresi telah ditingkatkan, mengurangi konsumsi ruang disk dan meningkatkan kinerja membaca.
  • Data yang terkait dengan keyspace sistem (system.*) sekarang ditempatkan di direktori pertama secara default alih-alih didistribusikan ke semua direktori data, yang memungkinkan node untuk tetap beroperasi jika salah satu disk tambahan gagal.
  • Menambahkan dukungan eksperimental untuk Replikasi Sementara dan Kuorum Murah. Replika sementara tidak menyimpan semua data dan menggunakan pemulihan bertahap agar konsisten dengan replika penuh. Kuorum ringan menerapkan pengoptimalan penulisan di mana tidak ada penulisan yang dilakukan pada replika sementara hingga tersedia kumpulan replika penuh yang memadai.
  • Menambahkan dukungan eksperimental untuk Java 11.
  • Menambahkan opsi eksperimental untuk membandingkan semua Pohon Merkle. Misalnya, mengaktifkan opsi pada klaster 3 simpul yang mana dua replikanya identik dan satu replika sudah usang akan menghasilkan pembaruan replika yang sudah usang hanya dengan menggunakan satu operasi penyalinan replika saat ini.
  • Menambahkan fungsi baru currentTimestamp, currentDate, currentTime dan currentTimeUUID.
  • Menambahkan dukungan untuk operasi aritmatika dalam kueri CQL.
  • Kemampuan untuk melakukan operasi aritmatika antara data dengan tipe “cap waktu”/”tanggal” dan “durasi” disediakan.
  • Menambahkan mode untuk melihat pratinjau aliran data yang diperlukan untuk pemulihan (perbaikan nodetool —pratinjau) dan kemampuan untuk memeriksa integritas data yang dipulihkan (perbaikan nodetool —validasi).
  • Kueri SELECT sekarang memiliki kemampuan untuk memproses elemen Peta dan Set.
  • Menambahkan dukungan untuk memparalelkan tahap konstruksi awal dari tampilan yang terwujud (cassandra.yaml:concurrent_materialized_view_builders).
  • Perintah "nodetool cfstats" telah menambahkan dukungan untuk mengurutkan berdasarkan metrik tertentu dan membatasi jumlah baris yang ditampilkan.
  • Pengaturan disediakan untuk membatasi koneksi pengguna pada pusat data tertentu saja.
  • Menambahkan kemampuan untuk membatasi intensitas (batas kecepatan) pembuatan snapshot dan operasi pembersihan.
  • cqlsh dan cqlshlib sekarang mendukung Python 3 (Python 2.7 masih didukung).
  • Dukungan untuk platform Windows telah dihentikan. Untuk menjalankan Cassandra di Windows, disarankan untuk menggunakan lingkungan Linux yang dibuat berdasarkan subsistem WSL2 (Subsistem Windows untuk Linux 2) atau sistem virtualisasi.



Sumber: opennet.ru

Tambah komentar