+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Доступний реліз розподіленої документоорієнтованої бази даних Apache CouchDB 2.3.0

Доступний реліз розподіленої документоорієнтованої бази даних Apache CouchDB 2.3.0

Доступний реліз розподіленої документоорієнтованої бази даних Apache CouchDB 2.3.0, що відноситься до класу NoSQL-систем. Вихідні тексти проекту розповсюджуються під ліцензією Apache 2.0.

У новому випуску усунута уразливість (CVE-2018-17188), що дозволяє віддалено підняти свої привілеї в системі (користувач з правами адміністратора СУБД може отримати доступ до оточення операційної системи з правами користувача, під яким запускається CouchDB). Так як за останні два роки це п'ята вразливість, пов'язана зміною конфігурації СУБД під час роботи (раніше були виправлені схожі вразливості CVE-2018-8007, CVE-2018-11769, CVE-2017-12636 і 2015 рішення повністю заборонити зміну ключових налаштувань СУБД через API. Налаштування тепер можуть бути змінені лише за наявності доступу до сервера shell.

Поліпшення, реалізовані в Apache CouchDB 2.3.0:

  • Додано підтримку кластерного очищення (clustered purge), що дозволяє повністю видалити з БД будь-який документ (віддалений чи не видалений) з будь-яким числом ревізій та конфліктів;
  • Реалізовано нове налаштування (seedlist), яке дозволяє адміністратору задати початковий список вузлів, до яких новий вузол повинен звернутися на етапі запуску. Вузли з даного списку, у разі доступності, автоматично будуть додані до БД _nodes та використані для реплікації внутрішніх системних БД;
  • Додано можливість реплікації зі зверненням до бенкетів, доступним тільки за IPv6;
  • Повернено стару поведінку CouchDB 1.x, пов'язану із зазначенням UUID сервера/кластера у відповіді на запит "GET /";
  • У реалізації операції пакетного виконання запиту (_bulk_get) з'явилася підтримка типів контенту multipart/mixed та multipart/related;
  • Припинено жорстке завдання розміру буфера TCP для прийому даних (раніше встановлювався в 256KB), що дозволяє операційній системі динамічно коригувати розмір буфера. Ця зміна істотно збільшила продуктивність передачі по мережі великих вкладень;
  • Спрощено включення SSL у файлі конфігурації, тепер достатньо створити секцію "[ssl]" з опцією "enable = true";
  • Всі скрипти, написані мовою Python, включаючи couchup та dev/run, для свого виконання відтепер вимагають наявності Python 3.x;
  • Забезпечено сумісність з Erlang 21.x.
  • Вбудована версія інструментарію rebar, що використовується для складання CouchDB, оновлена ​​до останньої версії гілки rebar2, що покращило підтримку збирання на платформах, відмінних від x86.

Нагадаємо, що CouchDB зберігає дані у форматі впорядкованого списку та дозволяє проводити часткову реплікацію даних між кількома БД у режимі «майстер-майстер» з одночасним виявленням та вирішенням конфліктних ситуацій. Кожен сервер зберігає свій локальний набір даних, синхронізований з іншими серверами, які можуть переводитися в offline-режим та періодично реплікувати зміни. Зокрема, ця можливість робить CouchDB привабливим рішенням для організації синхронізації параметрів програм між різними комп'ютерами. Рішення на базі CouchDB впроваджено в таких компаніях як BBC, Apple та CERN.

Запити до CouchDB та індексація даних можуть виконуватися відповідно до парадигми MapReduce, використовуючи для формування логіки вибірки даних мову JavaScript. Ядро системи написано мовою Erlang, оптимізованого для створення розподілених систем, що обслуговують безліч паралельних запитів. View-сервер написаний мовою Сі та базується на JavaScript-движку від проекту Mozilla. Доступ до БД здійснюється за допомогою протоколу HTTP з використанням RESTful JSON API, що дозволяє звертатися до даних у тому числі з веб-додатків, що виконуються в браузері.

В якості одиниці зберігання даних виступає документ, що має унікальний ідентифікатор, версію та містить довільний набір іменованих полів у форматі ключ/значення. Для організації псевдо-структурованого набору даних із довільних документів (агрегування та формування вибірок) застосовується концепція формування уявлень (view), визначення яких використовується мову JavaScript. На JavaScript також можна визначати функції перевірки коректності даних при додаванні нових документів у межах певного уявлення.

Інші новини

Найкраща ціна