Издање ФерретДБ 0.1, имплементација МонгоДБ заснована на ПостгреСКЛ ДБМС

Објављено је издање ФерретДБ 0.1 пројекта (раније МангоДБ), које вам омогућава да замените ДБМС МонгоДБ оријентисан на документе са ПостгреСКЛ без мењања кода апликације. ФерретДБ је имплементиран као проки сервер који преводи позиве МангоДБ-а у СКЛ упите за ПостгреСКЛ, омогућавајући да се ПостгреСКЛ користи као стварна меморија. Код је написан у Го и дистрибуиран под лиценцом Апацхе 2.0.

Потреба за миграцијом може настати услед преласка МонгоДБ-а на власничку ССПЛ лиценцу, која је заснована на АГПЛв3 лиценци, али није отворена, пошто садржи дискриминаторни захтев да се под ССПЛ лиценцом испоручи не само код апликације, већ и изворни код свих компоненти укључених у пружање услуге у облаку.

ФерретДБ-ова циљна публика су корисници који не користе напредне могућности МонгоДБ-а у својим апликацијама, али желе да користе потпуно отворен софтверски стог. У тренутној фази развоја, ФерретДБ и даље подржава само део МонгоДБ могућности које се најчешће користе у типичним апликацијама. У будућности планирају да постигну потпуну компатибилност са драјверима за МонгоДБ и обезбеде могућност коришћења ФерретДБ-а као транспарентне замене за МонгоДБ.

Подсетимо се да МонгоДБ заузима нишу између брзих и скалабилних система који оперишу подацима у формату кључ/вредност и релационих ДБМС-а који су функционални и лаки за формулисање упита. МонгоДБ подржава складиштење докумената у ЈСОН формату, има прилично флексибилан језик за генерисање упита, може да креира индексе за различите ускладиштене атрибуте, ефикасно обезбеђује складиштење великих бинарних објеката, подржава евидентирање операција за промену и додавање података у базу података, може ради у складу са парадигмом Мап/Редуце, ​​подржава репликацију и изградњу конфигурација отпорних на грешке.

Издање ФерретДБ 0.1.0 је у потпуности редизајнирало метод преузимања података из ПостгреСКЛ-а. Раније је за сваки долазни МонгоДБ захтев генерисан један СКЛ упит за ПостгреСКЛ, користећи функције за рад са ЈСОН форматом и филтрирање резултата на страни ПостгреСКЛ-а. Због разлика у семантици ПостгреСКЛ и МонгоДБ јсон функција, дошло је до неслагања у понашању приликом поређења и сортирања различитих типова. Да би се решио овај проблем, подаци се сада сувишно преузимају из ПостгреСКЛ-а, а резултат се филтрира на страни ФерретДБ-а, што је омогућило реплицирање понашања МонгоДБ-а у већини ситуација.

Цена повећане компатибилности била је смањење перформанси, које у будућим издањима очекују да ће надокнадити селективним филтрирањем на ФерретДБ страни само упита за које постоји неслагање у понашању. На пример, упит "дб.цоллецтион.финд({_ид: 'соме-ид-валуе'})" може се у потпуности обрадити у ПостгреСКЛ-у. Примарни циљ пројекта у овој фази развоја је постизање компатибилности са МонгоДБ, а перформансе су за сада потиснуте у други план. Међу функционалним променама у новој верзији, примећена је подршка за све битне операторе, оператор поређења „$ек“, као и операторе „$елемМатцх“ и „$битсАллЦлеар“.

Извор: опеннет.ру

Додај коментар