Випуск FerretDB 0.3, реалізації MongoDB на базі СУБД PostgreSQL

Опубліковано випуск проекту FerretDB 0.3, що дозволяє замінити документо-орієнтовану СУБД MongoDB на PostgreSQL без внесення змін до коду додатків. FerretDB реалізований як проксі-сервер, що транслює звернення до MongoDB у SQL-запити до PostgreSQL, що дозволяє використовувати PostgreSQL як фактичне сховище. Код написаний мовою Go та поширюється під ліцензією Apache 2.0.

Потреба міграції може виникнути у зв'язку з переходом MongoDB на невільну ліцензію SSPL, яка заснована на ліцензії AGPLv3, але не є відкритою, оскільки містить вимогу, що дискримінує, поставки під ліцензією SSPL не тільки коду самого додатка, але і вихідних текстів всіх компонентів, залучених до надання хмарного сервісу.

Основною цільовою аудиторією FerretDB є користувачі, які не застосовують у своїх додатках розширені можливості MongoDB, але бажають використати повністю відкритий програмний стек. На поточному етапі розвитку FerretDB поки підтримує лише частину можливостей MongoDB, що найчастіше використовуються в типових додатках. У майбутньому планують досягти повної сумісності з драйверами для MongoDB і надати можливість використовувати FerretDB як прозору заміну MongoDB.

MongoDB займає нішу між швидкими та масштабованими системами, що оперують даними у форматі ключ/значення, та реляційними СУБД, функціональними та зручними у формуванні запитів. MongoDB підтримує зберігання документів у JSON-подібному форматі, має досить гнучкий мову для формування запитів, може створювати індекси для різних атрибутів, що зберігаються, ефективно забезпечує зберігання великих бінарних об'єктів, підтримує журналування операцій зі зміни та додавання даних у БД, може працювати відповідно до парадигми Map/Reduce, підтримує реплікацію та побудову відмовостійких конфігурацій.

У випуску FerretDB 0.3 реалізована команда findAndModify, що змінює документ, але повертає його початкову версію. Реалізовані оператори оновлення полів - $inc і $set. Додано підтримку сортування скалярних типів даних.

Джерело: opennet.ru

Додати коментар або відгук