Hujjatga yo'naltirilgan DBMS Apache CouchDB 3.0 ning chiqarilishi

bo'lib o'tdi tarqatilgan hujjatlarga yo'naltirilgan ma'lumotlar bazasini chiqarish Apache CouchDB 3.0, NoSQL tizimlari sinfiga mansub. Loyiha manbalari tarqaldi Apache 2.0 ostida litsenziyalangan.

YaxshilashApache CouchDB 3.0 da amalga oshirilgan:

  • Standart konfiguratsiya yaxshilandi.
    Ishga tushirishda administrator foydalanuvchisi aniqlanishi kerak, bu holda server xato bilan tugaydi (sizga autentifikatsiyasiz kirishni tasodifan qoldiradigan serverlarni ishga tushirish bilan bog'liq muammolarni hal qilish imkonini beradi). "/_all_dbs" ga qo'ng'iroqlar endi administrator huquqlarini talab qiladi va barcha ma'lumotlar bazalari sukut bo'yicha yaratilgan bo'lib, faqat administrator foydalanuvchisi foydalanishi mumkin (kirish parametrlarini "_security" ob'ekti orqali o'zgartirish mumkin). Odatiy bo'lib, _users ma'lumotlar bazasidagi ob'ektlarni tahrirlash taqiqlanadi;

  • Qo'shilgan foydalanuvchi tomonidan aniqlangan segmentlangan (bo'lingan) ma'lumotlar bazalarini yaratish qobiliyati, bu esa hujjatlarni segmentlar (shard diapazoni) bo'yicha taqsimlash uchun o'z qoidalarini aniqlash imkonini beradi. Mango ko'rinishlari va indekslariga umumiy ma'lumotlar bazalari uchun maxsus optimallashtirish qo'shildi;
  • Amalga oshirildi segmentatsiya (parchalash) paytida avtomatik bo'linish rejimi. Ma'lumotlar bazasida endi parchalanish darajasini aniqlash uchun foydalaniladigan q-omil qiymatining oshishini hisobga olgan holda ma'lumotlarni segmentlar o'rtasida qayta taqsimlash mumkin;
  • Qo'shilgan avtomatik fon indeksatsiyasi va ikkilamchi indekslarni (JavaScript, Mango, matn qidirish indekslari) qurilish operatsiyalarini aniq ishga tushirmasdan yangilab turish uchun ken quyi tizimi;
  • Avtomatik ma'lumotlar bazasini qadoqlash uchun ishlatiladigan silliqlash jarayoni butunlay qayta yozildi;
  • Yangi quyi tizim taklif qilindi IO navbati, muayyan operatsiyalar uchun kiritish-chiqarish ustuvorligini o'zgartirish uchun ishlatiladi;
  • Regressiya test tizimini joriy qildi;
  • arm64v8 (aarch64) va ppc64le (ppc64el) platformalari uchun rasmiy yordam qoʻshildi;
  • ES1.8.5, ES60 va ES5+ uchun yaxshilangan qoʻllab-quvvatlash bilan SpiderMonkey 6 (Firefox 2016 ning ESR filiali) JavaScript dvigateli bilan bogʻlanish uchun qoʻshimcha qoʻllab-quvvatlash;
  • Qidiruv tizimi kiritilgan Dreyfus Lucene asosida, bu CouchDB asosida qidiruv tizimini joylashtirishni sezilarli darajada osonlashtiradi;
  • systemd-journald yordamida jurnalga yozish uchun qo'shilgan backend;
  • “[couchdb] single_node” sozlamasi qoʻshildi, oʻrnatilganda, CouchDB ular etishmayotgan boʻlsa, avtomatik ravishda tizim maʼlumotlar bazalarini yaratadi;
  • couch_server jarayonining ishlashi optimallashtirildi;
  • Windows platformasi uchun o'rnatuvchi sezilarli darajada yaxshilandi;
  • Koʻrishlar soni 2^28 (268435456) bilan cheklangan. Bu chegarani “[query_server_config]” bo‘limidagi query_limit va partition_query_limit opsiyalari yordamida muntazam va segmentlangan ko‘rinishlar uchun alohida sozlash mumkin;
  • 5986 tarmoq portida ishga tushirilgan alohida HTTP mahalliy tugunni boshqarish interfeysi olib tashlandi, uning funksionalligi endi umumiy klasterni boshqarish interfeysi orqali mavjud;
  • Hujjatning maksimal hajmi 8 MB ga qisqartirildi, bu CouchDB 3.0 ga yangilangandan so'ng eski serverlardan ma'lumotlarni takrorlashda muammolarga olib kelishi mumkin. Cheklovni oshirish uchun siz “[couchdb] max_document_size” sozlamasidan foydalanishingiz mumkin;
  • _replikator va _tashqi qo'ng'iroqlar, disk_size va ma'lumotlar_size maydonlari va kechiktirilgan_tasdiqlash opsiyasi kabi eskirgan xususiyatlarni katta tozalash amalga oshirildi;
  • CouchDB-ni ishga tushirish uchun endi Erlang/OTP 20.3.8.11+, 21.2.3+ yoki 22.0.5 talab qilinadi. Nazariy jihatdan, Erlang/OTP 19 filiali bilan funksionallik saqlanib qolgan, ammo u testlar bilan qoplangan.

Eslatib o'tamiz, CouchDB ma'lumotlarni tartiblangan ro'yxat formatida saqlaydi va bir vaqtning o'zida ziddiyatli vaziyatlarni aniqlash va hal qilish bilan master-master rejimida bir nechta ma'lumotlar bazalari o'rtasida ma'lumotlarni qisman takrorlash imkonini beradi. Har bir server boshqa serverlar bilan sinxronlashtirilgan o'zining mahalliy ma'lumotlar to'plamini saqlaydi, ularni oflayn rejimda olish va vaqti-vaqti bilan o'zgarishlarni takrorlash mumkin. Xususan, bu xususiyat CouchDB-ni turli xil kompyuterlar o'rtasida dastur sozlamalarini sinxronlashtirish uchun jozibali yechimga aylantiradi. CouchDB asosidagi yechimlar BBC, Apple va CERN kabi kompaniyalarda joriy qilingan.

CouchDB so'rovlari va ma'lumotlarni indekslash paradigmaga muvofiq amalga oshirilishi mumkin MapReduce, ma'lumotlarni namuna olish mantiqini yaratish uchun JavaScript-dan foydalanish. Tizim yadrosi Erlang tilida yozilgan bo'lib, u bir nechta parallel so'rovlarga xizmat qiluvchi taqsimlangan tizimlarni yaratish uchun optimallashtirilgan. Ko'rish serveri C tilida yozilgan va Mozilla loyihasining JavaScript dvigateliga asoslangan. Ma'lumotlar bazasiga kirish HTTP protokoli yordamida RESTful JSON API yordamida amalga oshiriladi, bu sizga ma'lumotlarga, shu jumladan brauzerda ishlaydigan veb-ilovalarga kirish imkonini beradi.

Ma'lumotlarni saqlash birligi noyob identifikatorga, versiyaga ega bo'lgan va kalit/qiymat formatidagi ixtiyoriy nomli maydonlarni o'z ichiga olgan hujjatdir. Ixtiyoriy hujjatlardan ma'lumotlarning soxta tuzilgan to'plamini (jamlash va tanlash) tashkil qilish uchun ko'rinishlarni (ko'rinishlarni) shakllantirish tushunchasi, qaysi JavaScript tilidan foydalanishni aniqlash uchun ishlatiladi. JavaScript, shuningdek, ma'lum bir ko'rinishga yangi hujjatlar qo'shganda ma'lumotlarni tekshirish funktsiyalarini belgilashi mumkin.

Manba: opennet.ru

a Izoh qo'shish