انتشار سندمحور DBMS Apache CouchDB 3.0

صورت گرفت انتشار یک پایگاه داده مبتنی بر سند توزیع شده Apache CouchDB 3.0، متعلق به کلاس سیستم های NoSQL. منابع پروژه گسترش دارای مجوز Apache 2.0.

پیشرفت هاپیاده سازی شده در Apache CouchDB 3.0:

  • پیکربندی پیش فرض بهبود یافته است.
    هنگام شروع، اکنون باید کاربر ادمین تعریف شود که بدون آن سرور با یک خطا خاتمه می یابد (به شما امکان می دهد مشکلات راه اندازی سرورهایی را که سهواً بدون احراز هویت دسترسی را ترک می کنند حل کنید). تماس‌های "/_all_dbs" اکنون به حقوق مدیر نیاز دارند و همه پایگاه‌های داده به‌طور پیش‌فرض ایجاد می‌شوند که فقط برای کاربر مدیر قابل دسترسی هستند (پارامترهای دسترسی را می‌توان از طریق شی "_security" تغییر داد). به طور پیش فرض، ویرایش اشیاء در پایگاه داده _users ممنوع است.

  • اضافه توانایی ایجاد پایگاه‌های داده تقسیم‌بندی شده (پارتیشن بندی شده) توسط کاربر، که امکان تعریف قوانین خود را برای توزیع اسناد در بخش‌ها (محدوده خرده‌ای) فراهم می‌کند. بهینه‌سازی‌های ویژه برای پایگاه‌های داده خرد شده به نماها و فهرست‌های Mango اضافه شده است.
  • اجرا شد حالت تقسیم خودکار در حین تقسیم بندی (شاردینگ). در پایگاه داده، اکنون امکان توزیع مجدد داده ها در بین بخش ها با در نظر گرفتن افزایش مقدار ضریب q که برای تعیین سطح شکست استفاده می شود، وجود دارد.
  • اضافه زیرسیستم ken برای نمایه سازی خودکار پس زمینه و به روز نگه داشتن نمایه های ثانویه (جاوا اسکریپت، مانگو، فهرست های جستجوی متن) بدون راه اندازی صریح عملیات ساخت و ساز.
  • فرآیند smoosh مورد استفاده برای بسته بندی خودکار پایگاه داده به طور کامل بازنویسی شده است.
  • زیر سیستم جدید پیشنهاد شده است صف IO، برای تغییر اولویت I/O برای عملیات خاص استفاده می شود.
  • پیاده سازی سیستم تست رگرسیون؛
  • اضافه شدن پشتیبانی رسمی برای پلتفرم های arm64v8 (aarch64) و ppc64le (ppc64el).
  • اضافه شدن پشتیبانی برای پیوند با موتور جاوا اسکریپت SpiderMonkey 1.8.5 (شاخه ESR فایرفاکس 60) با پشتیبانی بهبودیافته برای ES5، ES6 و ES2016+.
  • موتور جستجو گنجانده شده است دریفوس بر اساس Lucene، که تا حد زیادی استقرار یک موتور جستجو بر اساس CouchDB را ساده می کند.
  • باطن اضافه شده برای ورود به سیستم با استفاده از systemd-journald.
  • تنظیم "[couchdb] single_node" اضافه شد، در صورت تنظیم، CouchDB به طور خودکار پایگاه داده های سیستم را در صورت عدم وجود آنها ایجاد می کند.
  • عملکرد فرآیند couch_server بهینه شده است.
  • نصب کننده پلت فرم ویندوز به طور قابل توجهی بهبود یافته است.
  • تعداد بازدیدها به ۲^۲۸ (۲۶۸۴۳۵۴۵۶) نتیجه محدود شده است. با استفاده از گزینه‌های query_limit و partition_query_limit در بخش "[query_server_config]" این محدودیت را می‌توان به طور جداگانه برای نماهای معمولی و تقسیم‌بندی شده پیکربندی کرد.
  • یک رابط مدیریت گره محلی HTTP جداگانه، راه اندازی شده در پورت شبکه 5986، حذف شده است، که عملکرد آن اکنون از طریق رابط مشترک مدیریت خوشه در دسترس است.
  • حداکثر اندازه سند به 8 مگابایت کاهش یافته است، که ممکن است پس از ارتقاء به CouchDB 3.0 مشکلاتی را در تکرار داده ها از سرورهای قدیمی ایجاد کند. برای افزایش محدودیت، می‌توانید از تنظیم «[couchdb] max_document_size» استفاده کنید.
  • پاکسازی عمده ای از ویژگی های منسوخ انجام شده است، مانند _replicator و _external calls، disk_size و data_size فیلدها، و گزینه delayed_commits.
  • اجرای CouchDB اکنون به Erlang/OTP 20.3.8.11+، 21.2.3+ یا 22.0.5 نیاز دارد. از نظر تئوری، عملکرد با شاخه Erlang/OTP 19 حفظ می شود، اما توسط آزمایش ها پوشش داده می شود.

بیایید به یاد بیاوریم که CouchDB داده ها را در قالب لیست مرتب ذخیره می کند و امکان تکرار جزئی داده ها را بین چندین پایگاه داده در حالت master-master با تشخیص و حل همزمان موقعیت های تضاد می دهد. هر سرور مجموعه ای از داده های محلی خود را ذخیره می کند که با سرورهای دیگر همگام شده است، که می توان آنها را آفلاین کرد و به طور دوره ای تغییرات را تکرار کرد. به ویژه، این ویژگی، CouchDB را به یک راه حل جذاب برای همگام سازی تنظیمات برنامه بین رایانه های مختلف تبدیل می کند. راه حل های مبتنی بر CouchDB در شرکت هایی مانند BBC، Apple و CERN پیاده سازی شده است.

پرس و جوهای CouchDB و نمایه سازی داده ها را می توان بر اساس پارادایم انجام داد MapReduce، با استفاده از جاوا اسکریپت برای تولید منطق نمونه گیری داده ها. هسته سیستم به زبان Erlang نوشته شده است که برای ایجاد سیستم های توزیع شده که چندین درخواست موازی را ارائه می دهند بهینه شده است. سرور view به زبان C نوشته شده است و بر اساس موتور جاوا اسکریپت پروژه موزیلا است. دسترسی به پایگاه داده با استفاده از پروتکل HTTP با استفاده از RESTful JSON API انجام می شود، که به شما امکان می دهد به داده ها، از جمله از برنامه های کاربردی وب در حال اجرا در مرورگر، دسترسی داشته باشید.

واحد ذخیره سازی داده سندی است که دارای شناسه، نسخه منحصر به فرد است و شامل مجموعه دلخواه از فیلدهای نامگذاری شده در قالب کلید/مقدار است. برای سازماندهی یک مجموعه شبه ساختار یافته از داده ها از اسناد دلخواه (تجمع و انتخاب)، از مفهوم تشکیل نماها (نماها) استفاده می شود، تا مشخص شود که از کدام زبان جاوا اسکریپت استفاده می شود. جاوا اسکریپت همچنین می‌تواند عملکردهایی را برای اعتبارسنجی داده‌ها هنگام افزودن اسناد جدید در یک نمای خاص تعریف کند.

منبع: opennet.ru

اضافه کردن نظر