Rilis DBMS berorientasi dokumen Apache CouchDB 3.0

ambil tempat rilis database berorientasi dokumen terdistribusi Apache CouchDB 3.0milik kelas sistem NoSQL. Kode sumber proyek sebaran berlisensi di bawah Apache 2.0.

Perbaikandiimplementasikan di Apache CouchDB 3.0:

  • Keamanan yang diperkeras dalam konfigurasi default.
    Saat startup, pengguna admin sekarang harus ditentukan, tanpanya server akan menyelesaikan pekerjaannya dengan kesalahan (memungkinkan Anda untuk menyelesaikan masalah dengan memulai server yang secara tidak sengaja meninggalkan akses tanpa otentikasi). Memanggil "/_all_dbs" sekarang memerlukan hak administrator, dan semua database dibuat secara default hanya dapat diakses oleh pengguna admin (parameter akses dapat diubah melalui objek "_security"). Secara default, mengedit objek di database _users dilarang;

  • Ditambahkan kemampuan untuk membuat basis data tersegmentasi (dipartisi) yang ditentukan pengguna, yang memungkinkan untuk menentukan aturan Anda sendiri untuk mendistribusikan dokumen ke dalam segmen (rentang pecahan). Pengoptimalan khusus untuk database yang dipecah telah ditambahkan ke tampilan dan indeks Mango;
  • Diimplementasikan mode pembagian otomatis saat melakukan segmentasi (sharding). Dalam basis data, sekarang dimungkinkan untuk mendistribusikan ulang data ke seluruh segmen, dengan mempertimbangkan peningkatan nilai faktor-q yang digunakan untuk menentukan tingkat perincian;
  • Ditambahkan subsistem ken untuk pengindeksan latar belakang otomatis dan menjaga indeks sekunder tetap up-to-date (JavaScript, Mango, indeks pencarian teks) tanpa secara eksplisit meluncurkan operasi konstruksi mereka;
  • Proses smoosh yang digunakan untuk pengemasan database secara otomatis telah sepenuhnya ditulis ulang;
  • Subsistem baru diusulkan Antrian IOdigunakan untuk mengubah prioritas I/O untuk operasi tertentu;
  • Menerapkan sistem pengujian regresi;
  • Menambahkan dukungan resmi untuk platform arm64v8 (aarch64) dan ppc64le (ppc64el);
  • Menambahkan dukungan untuk menautkan ke mesin JavaScript SpiderMonkey 1.8.5 (cabang ESR Firefox 60) dengan dukungan yang ditingkatkan untuk ES5, ES6 dan ES2016+;
  • Mesin pencari disertakan Dreyfus berdasarkan Lucene, yang sangat menyederhanakan penyebaran mesin pencari berdasarkan CouchDB;
  • Menambahkan backend untuk logging menggunakan systemd-journald;
  • Menambahkan pengaturan "[couchdb] single_node", saat disetel, CouchDB akan secara otomatis membuat database sistem jika tidak ada;
  • Mengoptimalkan kinerja proses couch_server;
  • Pemasang yang ditingkatkan secara signifikan untuk platform Windows;
  • Tampilan dibatasi hingga 2^28 (268435456) hasil. Batas ini dapat dikonfigurasi secara terpisah untuk tampilan biasa dan tersegmentasi menggunakan opsi query_limit dan partition_query_limit di bagian "[query_server_config]";
  • Menghapus antarmuka manajemen node lokal HTTP terpisah yang berjalan pada port jaringan 5986, yang fungsinya sekarang tersedia melalui antarmuka manajemen cluster umum;
  • Ukuran dokumen maksimum telah dikurangi menjadi 8 MB, yang dapat menyebabkan masalah replikasi data dari server lama setelah memutakhirkan ke CouchDB 3.0. Anda dapat menggunakan pengaturan "[couchdb] max_document_size" untuk menambah batas;
  • Banyak fitur yang tidak digunakan lagi telah dibersihkan, seperti _replicator dan _external calls, bidang disk_size dan data_size, opsi delay_commits;
  • CouchDB sekarang membutuhkan Erlang/OTP 20.3.8.11+, 21.2.3+ atau 22.0.5 untuk dijalankan. Secara teoritis, bekerja dengan cabang Erlang/OTP 19 dipertahankan, tetapi dicakup oleh pengujian.

Ingatlah bahwa CouchDB menyimpan data dalam format daftar terurut dan memungkinkan replikasi sebagian data antara beberapa database dalam mode "master-master" dengan deteksi dan penyelesaian situasi konflik secara simultan. Setiap server menyimpan kumpulan data lokalnya sendiri, disinkronkan dengan server lain, yang dapat dibuat offline dan mereplikasi perubahan secara berkala. Secara khusus, fitur ini menjadikan CouchDB solusi yang menarik untuk menyinkronkan pengaturan program antara komputer yang berbeda. Solusi berbasis CouchDB telah digunakan oleh perusahaan seperti BBC, Apple dan CERN.

Permintaan CouchDB dan pengindeksan data dapat dilakukan sesuai dengan paradigma PetaKurangi, menggunakan bahasa JavaScript untuk membentuk logika pengambilan sampel data. Inti dari sistem ditulis dalam bahasa Erlang, yang dioptimalkan untuk membuat sistem terdistribusi yang melayani banyak permintaan paralel. Server tampilan ditulis dalam C dan didasarkan pada mesin JavaScript dari proyek Mozilla. Akses ke database dilakukan menggunakan protokol HTTP menggunakan RESTful JSON API, yang memungkinkan pengaksesan data, termasuk dari aplikasi web yang berjalan di browser.

Unit penyimpanan data adalah dokumen yang memiliki pengidentifikasi unik, versi, dan berisi sekumpulan bidang bernama yang berubah-ubah dalam format kunci/nilai. Untuk mengatur kumpulan data terstruktur semu dari dokumen arbitrer (agregasi dan pengambilan sampel), konsep pembentukan tampilan (tampilan) digunakan, untuk definisi yang digunakan bahasa JavaScript. JavaScript juga dapat menentukan fungsi untuk memvalidasi data saat dokumen baru ditambahkan dalam tampilan tertentu.

Sumber: opennet.ru

Tambah komentar