إصدار DBMS Apache CouchDB 3.0 المستند إلى المستندات

يأخذ مكانا إطلاق قاعدة بيانات موزعة موجهة للوثائق أباتشي كاوتش دي بي 3.0، ينتمي إلى فئة أنظمة NoSQL. مصادر المشروع الانتشار مرخص بموجب Apache 2.0.

تحسيناتتم تنفيذها في Apache CouchDB 3.0:

  • تم تحسين التكوين الافتراضي.
    عند البدء، يجب الآن تحديد المستخدم المسؤول، والذي بدونه سينتهي الخادم بخطأ (يسمح لك بحل المشكلات المتعلقة بتشغيل الخوادم التي تترك الوصول دون قصد دون مصادقة). تتطلب الاستدعاءات إلى "/_all_dbs" الآن حقوق المسؤول، ويتم إنشاء جميع قواعد البيانات بشكل افتراضي ولا يمكن الوصول إليها إلا من قبل المستخدم الإداري (يمكن تغيير معلمات الوصول من خلال كائن "_security"). افتراضيًا، يُحظر تحرير الكائنات في قاعدة بيانات _users؛

  • أضيفت بواسطة القدرة على إنشاء قواعد بيانات مجزأة (مقسمة) محددة من قبل المستخدم، مما يجعل من الممكن تحديد القواعد الخاصة بك لتوزيع المستندات عبر المقاطع (نطاق القطع). تمت إضافة تحسينات خاصة لقواعد البيانات المقسمة إلى طرق عرض وفهارس Mango؛
  • مُنفّذ وضع التقسيم التلقائي أثناء التجزئة (التقسيم). في قاعدة البيانات، أصبح من الممكن الآن إعادة توزيع البيانات بين القطاعات، مع مراعاة زيادة قيمة العامل q المستخدم لتحديد مستوى التقسيم؛
  • أضيفت بواسطة نظام ken الفرعي لفهرسة الخلفية التلقائية والحفاظ على تحديث الفهارس الثانوية (JavaScript وMango وفهارس البحث عن النص) دون بدء عمليات الإنشاء بشكل صريح؛
  • تمت إعادة كتابة عملية smoosh المستخدمة في التعبئة التلقائية لقاعدة البيانات بالكامل؛
  • النظام الفرعي الجديد المقترح قائمة انتظار الإدخال والإخراجيستخدم لتغيير أولوية الإدخال/الإخراج لعمليات معينة؛
  • نفذت نظام اختبار الانحدار.
  • تمت إضافة الدعم الرسمي لمنصات Arm64v8 (aarch64) وppc64le (ppc64el)؛
  • تمت إضافة دعم للربط مع محرك JavaScript SpiderMonkey 1.8.5 (فرع ESR من Firefox 60) مع دعم محسّن لـ ES5 وES6 وES2016+؛
  • تم تضمين محرك البحث دريفوس استنادًا إلى Lucene، والذي يبسط بشكل كبير نشر محرك بحث يعتمد على CouchDB؛
  • تمت إضافة الواجهة الخلفية للتسجيل باستخدام systemd-journald؛
  • تمت إضافة إعداد "[couchdb] Single_node"، عند تعيينه، سيقوم CouchDB تلقائيًا بإنشاء قواعد بيانات النظام إذا كانت مفقودة؛
  • تم تحسين أداء عملية الأريكة_الخادمة؛
  • تم تحسين برنامج التثبيت الخاص بنظام Windows بشكل ملحوظ؛
  • تقتصر المشاهدات على 2^28 (268435456) نتيجة. يمكن تكوين هذا الحد بشكل منفصل لطرق العرض العادية والمجزأة باستخدام خيارات query_limit وpartition_query_limit في قسم “[query_server_config]”؛
  • تمت إزالة واجهة إدارة عقدة محلية منفصلة لـ HTTP، والتي تم إطلاقها على منفذ الشبكة 5986، والتي أصبحت وظائفها متاحة الآن من خلال واجهة إدارة المجموعة المشتركة؛
  • تم تقليل الحد الأقصى لحجم المستند إلى 8 ميجابايت، مما قد يسبب مشاكل في نسخ البيانات من الخوادم الأقدم بعد الترقية إلى CouchDB 3.0. لزيادة الحد، يمكنك استخدام الإعداد "[couchdb] max_document_size"؛
  • تم إجراء عملية تنظيف رئيسية للميزات القديمة، مثل استدعاءات _replicator و_external، وحقول_حجم_القرص و_حجم_البيانات، وخيار الالتزامات المتأخرة؛
  • يتطلب تشغيل CouchDB الآن إصدار Erlang/OTP 20.3.8.11+ أو 21.2.3+ أو 22.0.5. من الناحية النظرية، يتم الحفاظ على وظيفة فرع Erlang/OTP 19، ولكنها مشمولة بالاختبارات.

دعونا نتذكر أن CouchDB يقوم بتخزين البيانات بتنسيق قائمة مرتبة ويسمح بالنسخ الجزئي للبيانات بين عدة قواعد بيانات في وضع رئيسي رئيسي مع الكشف المتزامن وحل حالات التعارض. يقوم كل خادم بتخزين مجموعة البيانات المحلية الخاصة به، والتي تتم مزامنتها مع خوادم أخرى، والتي يمكن أخذها دون اتصال بالإنترنت وتكرار التغييرات بشكل دوري. على وجه الخصوص، هذه الميزة تجعل CouchDB حلاً جذابًا لمزامنة إعدادات البرنامج بين أجهزة الكمبيوتر المختلفة. تم تنفيذ الحلول المستندة إلى CouchDB في شركات مثل BBC وApple وCERN.

يمكن إجراء استعلامات CouchDB وفهرسة البيانات وفقًا للنموذج مابريديوسباستخدام JavaScript لإنشاء منطق أخذ عينات البيانات. تمت كتابة جوهر النظام بلغة Erlang، والتي تم تحسينها لإنشاء أنظمة موزعة تخدم طلبات متوازية متعددة. خادم العرض مكتوب بلغة C ويعتمد على محرك JavaScript من مشروع Mozilla. يتم الوصول إلى قاعدة البيانات باستخدام بروتوكول HTTP باستخدام RESTful JSON API، والذي يسمح لك بالوصول إلى البيانات، بما في ذلك من تطبيقات الويب التي تعمل في المتصفح.

وحدة تخزين البيانات عبارة عن مستند يحتوي على معرف فريد وإصدار ويحتوي على مجموعة عشوائية من الحقول المسماة بتنسيق المفتاح/القيمة. لتنظيم مجموعة بيانات منظمة بشكل زائف من مستندات عشوائية (التجميع والاختيار)، يتم استخدام مفهوم تكوين طرق العرض (طرق العرض)، لتحديد لغة JavaScript المستخدمة. يمكن لـ JavaScript أيضًا تحديد وظائف للتحقق من صحة البيانات عند إضافة مستندات جديدة ضمن طريقة عرض معينة.

المصدر: opennet.ru

إضافة تعليق