Keluaran DBMS Apache CouchDB 3.0 yang berorientasikan dokumen

mengambil tempat pelepasan pangkalan data berorientasikan dokumen yang diedarkan Apache CouchDB 3.0, kepunyaan kelas sistem NoSQL. Sumber projek sebar berlesen di bawah Apache 2.0.

Penambahbaikandilaksanakan dalam Apache CouchDB 3.0:

  • Konfigurasi lalai telah dipertingkatkan.
    Apabila bermula, pengguna pentadbir kini mesti ditakrifkan, tanpanya pelayan akan ditamatkan dengan ralat (membolehkan anda menyelesaikan masalah dengan melancarkan pelayan yang secara tidak sengaja meninggalkan akses tanpa pengesahan). Panggilan ke "/_all_dbs" kini memerlukan hak pentadbir, dan semua pangkalan data dicipta secara lalai hanya boleh diakses oleh pengguna pentadbir (parameter akses boleh ditukar melalui objek "_security"). Secara lalai, menyunting objek dalam pangkalan data _users adalah dilarang;

  • Ditambah keupayaan untuk mencipta pangkalan data bersegmen (partition) yang ditentukan pengguna, membolehkan anda menentukan peraturan anda sendiri untuk mengedarkan dokumen merentas segmen (julat shard). Menambahkan pengoptimuman khas untuk pangkalan data berpecah pada paparan dan indeks Mango;
  • Dilaksanakan mod pembahagian automatik semasa pembahagian (sharding). Dalam pangkalan data, kini mungkin untuk mengagihkan semula data antara segmen, dengan mengambil kira peningkatan nilai faktor q yang digunakan untuk menentukan tahap pecahan;
  • Ditambah subsistem ken untuk pengindeksan latar belakang automatik dan mengekalkan indeks sekunder (JavaScript, Mango, indeks carian teks) terkini tanpa melancarkan operasi pembinaannya secara eksplisit;
  • Proses smoosh yang digunakan untuk pembungkusan pangkalan data automatik telah ditulis semula sepenuhnya;
  • Subsistem baharu dicadangkan Baris Gilir IO, digunakan untuk menukar keutamaan I/O untuk operasi tertentu;
  • Melaksanakan sistem ujian regresi;
  • Menambahkan sokongan rasmi untuk platform arm64v8 (aarch64) dan ppc64le (ppc64el);
  • Menambah sokongan untuk memaut dengan enjin JavaScript SpiderMonkey 1.8.5 (cawangan ESR Firefox 60) dengan sokongan yang dipertingkatkan untuk ES5, ES6 dan ES2016+;
  • Enjin carian disertakan Dreyfus berdasarkan Lucene, yang sangat memudahkan penggunaan enjin carian berdasarkan CouchDB;
  • Penambahan bahagian belakang untuk pengelogan menggunakan systemd-journald;
  • Menambah tetapan "[couchdb] single_node", apabila ditetapkan, CouchDB akan membuat pangkalan data sistem secara automatik jika ia tiada;
  • Prestasi proses couch_server telah dioptimumkan;
  • Pemasang untuk platform Windows telah dipertingkatkan dengan ketara;
  • Tontonan terhad kepada 2^28 (268435456) hasil carian. Had ini boleh dikonfigurasikan secara berasingan untuk paparan biasa dan terbahagi menggunakan pilihan query_limit dan partition_query_limit dalam bahagian "[query_server_config]";
  • Antara muka pengurusan nod tempatan HTTP yang berasingan, yang dilancarkan pada port rangkaian 5986, telah dialih keluar, yang fungsinya kini tersedia melalui antara muka pengurusan kluster biasa;
  • Saiz dokumen maksimum telah dikurangkan kepada 8 MB, yang mungkin menyebabkan masalah dengan replikasi data daripada pelayan lama selepas menaik taraf kepada CouchDB 3.0. Untuk meningkatkan had, anda boleh menggunakan tetapan "[couchdb] max_document_size";
  • Pembersihan utama ciri-ciri usang telah dijalankan, seperti _replicator dan _panggilan luar, medan_saiz cakera dan saiz_data, dan pilihan tertunda_komit;
  • Menjalankan CouchDB kini memerlukan Erlang/OTP 20.3.8.11+, 21.2.3+ atau 22.0.5. Secara teorinya, fungsi dengan cawangan Erlang/OTP 19 dikekalkan, tetapi ia dilindungi oleh ujian.

Mari kita ingat bahawa CouchDB menyimpan data dalam format senarai tersusun dan membenarkan replikasi separa data antara beberapa pangkalan data dalam mod master-master dengan pengesanan serentak dan penyelesaian situasi konflik. Setiap pelayan menyimpan set data setempatnya sendiri, disegerakkan dengan pelayan lain, yang boleh dibawa ke luar talian dan meniru perubahan secara berkala. Khususnya, ciri ini menjadikan CouchDB penyelesaian yang menarik untuk menyegerakkan tetapan program antara komputer yang berbeza. Penyelesaian berasaskan CouchDB telah dilaksanakan dalam syarikat seperti BBC, Apple dan CERN.

Pertanyaan CouchDB dan pengindeksan data boleh dilakukan mengikut paradigma Pengurangan Peta, menggunakan JavaScript untuk menjana logik pensampelan data. Teras sistem ditulis dalam Erlang, yang dioptimumkan untuk mencipta sistem teragih yang menyediakan pelbagai permintaan selari. Pelayan paparan ditulis dalam C dan berdasarkan enjin JavaScript daripada projek Mozilla. Akses kepada pangkalan data dijalankan menggunakan protokol HTTP menggunakan API JSON RESTful, yang membolehkan anda mengakses data, termasuk daripada aplikasi web yang dijalankan dalam penyemak imbas.

Unit storan data ialah dokumen yang mempunyai pengecam unik, versi dan mengandungi set medan bernama sewenang-wenangnya dalam format kunci/nilai. Untuk menyusun set data berstruktur pseudo daripada dokumen arbitrari (pengagregatan dan pemilihan), konsep membentuk pandangan (pandangan) digunakan, untuk menentukan bahasa JavaScript yang digunakan. JavaScript juga boleh mentakrifkan fungsi untuk mengesahkan data apabila menambah dokumen baharu dalam paparan tertentu.

Sumber: opennet.ru

Tambah komen