Apache Cassandra 4.0 DBMS tersedia

Yayasan Perisian Apache membentangkan keluaran DBMS Apache Cassandra 4.0 yang diedarkan, yang tergolong dalam kelas sistem noSQL dan direka bentuk untuk mencipta storan yang sangat berskala dan boleh dipercayai bagi sejumlah besar data yang disimpan dalam bentuk tatasusunan bersekutu (cincang). Keluaran Cassandra 4.0 dianggap sedia untuk pelaksanaan pengeluaran dan telah pun diuji dalam infrastruktur Amazon, Apple, DataStax, Instaclustr, iland dan Netflix dengan kluster lebih daripada 1000 nod. Kod projek ditulis dalam Java dan diedarkan di bawah lesen Apache 2.0.

Cassandra DBMS pada asalnya dibangunkan oleh Facebook dan pada tahun 2009 dipindahkan di bawah naungan Yayasan Apache. Penyelesaian industri berdasarkan Cassandra telah digunakan untuk membekalkan perkhidmatan daripada syarikat seperti Apple, Adobe, CERN, Cisco, IBM, HP, Comcast, Disney, eBay, Huawei, Netflix, Sony, Rackspace, Reddit dan Twitter. Sebagai contoh, infrastruktur storan berasaskan Apache Cassandra yang digunakan oleh Apple mempunyai lebih daripada seribu kluster, termasuk 160 ribu nod dan menyimpan lebih daripada 100 petabait data. Huawei menggunakan lebih daripada 300 kluster Apache Cassandra, termasuk 30 ribu nod, dan Netflix menggunakan lebih daripada 100 kluster, meliputi 10 ribu nod dan memproses lebih daripada satu trilion permintaan setiap hari.

DBMS Cassandra menggabungkan sistem cincang Dynamo yang diedarkan sepenuhnya, yang menyediakan kebolehskalaan hampir linear apabila volum data meningkat. Cassandra menggunakan model storan data berdasarkan keluarga lajur (ColumnFamily), yang berbeza daripada sistem seperti memcachedb, yang menyimpan data hanya dalam rantai kunci/nilai, dengan keupayaan untuk mengatur storan cincang dengan beberapa peringkat sarang. Untuk memudahkan interaksi dengan pangkalan data, bahasa pertanyaan berstruktur CQL (Cassandra Query Language) disokong, yang mengingatkan SQL, tetapi dikurangkan dalam fungsi. Ciri termasuk sokongan untuk ruang nama dan keluarga lajur, dan penciptaan indeks menggunakan ungkapan "CREATE INDEX".

DBMS membolehkan anda mencipta storan tahan kegagalan: data yang diletakkan dalam pangkalan data secara automatik direplikasi ke beberapa nod rangkaian teragih, yang boleh merentangi pusat data yang berbeza. Apabila nod gagal, fungsinya diambil dengan cepat oleh nod lain. Menambah nod baharu pada kluster dan mengemas kini versi Cassandra dilakukan dengan cepat, tanpa campur tangan manual tambahan atau mengkonfigurasi semula nod lain. Pemacu dengan sokongan CQL disediakan untuk Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ dan JavaScript (Node.js).

Inovasi utama:

  • Prestasi dan kebolehskalaan yang dipertingkatkan. Kecekapan pertukaran data dalam format SSTable (Sorted Strings Table) antara nod telah dipertingkatkan. Protokol Pemesejan Internode telah dioptimumkan. Kelajuan pemindahan aliran data antara nod telah meningkat sehingga 5 kali ganda (terutamanya disebabkan oleh penggunaan teknik Zero Copy dan pemindahan keseluruhan SSTables), dan daya pemprosesan untuk operasi baca dan tulis telah meningkat kepada 25%. Proses pemulihan tambahan telah dioptimumkan. Kependaman akibat pemberhentian kutipan sampah dikurangkan kepada beberapa milisaat.
  • Menambah sokongan untuk log audit yang membolehkan anda menjejaki operasi pengesahan pengguna dan semua pertanyaan CQL yang dilaksanakan.
  • Menambahkan keupayaan untuk mengekalkan log permintaan binari penuh, membolehkan anda menyimpan semua trafik permintaan dan respons. Untuk pengurusan, arahan "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" dicadangkan dan utiliti fqltool dibekalkan untuk analisis log. Perintah disediakan untuk menukar log ke dalam bentuk yang boleh dibaca (Dump), membandingkan kepingan aktiviti (Bandingkan) dan melaksanakan semula (Main Semula) untuk analisis yang menghasilkan semula keadaan yang wujud dalam beban sebenar.
  • Menambah sokongan untuk jadual maya yang tidak mencerminkan data yang disimpan dalam SSTables, tetapi output maklumat melalui API (metrik prestasi, maklumat tetapan, kandungan cache, maklumat tentang pelanggan yang disambungkan, dsb.).
  • Kecekapan storan data termampat telah dipertingkatkan, mengurangkan penggunaan ruang cakera dan meningkatkan prestasi bacaan.
  • Data yang berkaitan dengan ruang kekunci sistem (sistem.*) kini diletakkan dalam direktori pertama secara lalai dan bukannya diedarkan merentasi semua direktori data, yang membolehkan nod kekal beroperasi jika salah satu cakera tambahan gagal.
  • Menambahkan sokongan percubaan untuk Replikasi Sementara dan Kuorum Murah. Replika sementara tidak menyimpan semua data dan menggunakan pemulihan tambahan agar konsisten dengan replika penuh. Kuorum ringan melaksanakan pengoptimuman tulis di mana tiada penulisan dibuat pada replika sementara sehingga set replika penuh yang mencukupi tersedia.
  • Menambahkan sokongan eksperimen untuk Java 11.
  • Menambahkan pilihan eksperimen untuk membandingkan semua Pokok Merkle. Sebagai contoh, mendayakan pilihan pada gugusan 3-nod di mana dua replika adalah sama dan satu lapuk akan menghasilkan kemas kini replika lapuk menggunakan hanya satu operasi salinan replika semasa.
  • Menambah fungsi baharu currentTimestamp, currentDate, currentTime dan currentTimeUUID.
  • Menambah sokongan untuk operasi aritmetik dalam pertanyaan CQL.
  • Keupayaan untuk melaksanakan operasi aritmetik antara data dengan jenis "cap masa"/"tarikh" dan "tempoh" disediakan.
  • Menambahkan mod untuk pratonton strim data yang diperlukan untuk pemulihan (pembaikan alat node β€”pratonton) dan keupayaan untuk menyemak integriti data yang dipulihkan (pembaikan alat node β€”sahkan).
  • Pertanyaan SELECT kini mempunyai keupayaan untuk memproses elemen Peta dan Set.
  • Menambahkan sokongan untuk menyelaraskan peringkat pembinaan awal pandangan terwujud (cassandra.yaml:concurrent_materialized_view_builders).
  • Perintah "cfstats nodetool" telah menambah sokongan untuk mengisih mengikut metrik tertentu dan mengehadkan bilangan baris yang dipaparkan.
  • Tetapan disediakan untuk mengehadkan sambungan pengguna kepada pusat data tertentu sahaja.
  • Menambah keupayaan untuk mengehadkan keamatan (had kadar) penciptaan syot kilat dan operasi pembersihan.
  • cqlsh dan cqlshlib kini menyokong Python 3 (Python 2.7 masih disokong).
  • Sokongan untuk platform Windows telah dihentikan. Untuk menjalankan Cassandra pada Windows, adalah disyorkan untuk menggunakan persekitaran Linux yang dicipta berdasarkan subsistem WSL2 (Windows Subsystem for Linux 2) atau sistem virtualisasi.



Sumber: opennet.ru

Tambah komen