FerretDB 0.1 чыгаруу, PostgreSQL DBMS негизинде MongoDB ишке ашыруу

FerretDB 0.1 долбоорунун (мурунку MangoDB) релизи жарыяланды, бул сизге документке багытталган DBMS MongoDBди PostgreSQL менен алмаштырууга мүмкүндүк берет, колдонмо кодуна өзгөртүүлөрдү киргизбестен. FerretDB прокси сервер катары ишке ашырылган, ал MangoDBге чалууларды SQL сурамдарына PostgreSQLге которуп, PostgreSQLди анык сактагыч катары колдонууга мүмкүндүк берет. Код Go программасында жазылган жана Apache 2.0 лицензиясы боюнча таратылган.

Миграция муктаждыгы MongoDB AGPLv3 лицензиясына негизделген, бирок ачык эмес, менчик SSPL лицензиясына өтүшүнө байланыштуу келип чыгышы мүмкүн, анткени ал SSPL лицензиясы боюнча өтүнмөнүн кодун гана эмес, ошондой эле жеткирүү үчүн басмырлоочу талапты камтыйт. камсыз кылуу булут кызматына катышкан бардык компоненттердин баштапкы коду.

FerretDBдин максаттуу аудиториясы - бул MongoDBдин өркүндөтүлгөн мүмкүнчүлүктөрүн өз тиркемелеринде колдонбогон, бирок толугу менен ачык программалык стек колдонгусу келген колдонуучулар. Өнүктүрүүнүн азыркы этабында, FerretDB дагы эле типтүү тиркемелерде колдонулган MongoDB мүмкүнчүлүктөрүнүн бир бөлүгүн гана колдойт. Келечекте алар MongoDB үчүн драйверлер менен толук шайкеш келүүнү пландаштырууда жана FerretDBти MongoDB үчүн ачык алмаштыруу катары колдонуу мүмкүнчүлүгүн камсыз кылууну пландаштырууда.

Эске сала кетсек, MongoDB ачкыч/маани форматындагы маалыматтарды иштеткен тез жана масштабдуу системалар менен функционалдык жана суроо-талаптарды түзүүгө оңой болгон реляциялык DBMS ортосунда орун ээлейт. MongoDB документтерди JSON форматында сактоону колдойт, суроо-талаптарды түзүү үчүн кыйла ийкемдүү тилге ээ, ар кандай сакталган атрибуттар үчүн индекстерди түзө алат, чоң экилик объектилердин сакталышын эффективдүү камсыздайт, маалымат базасына маалыматтарды өзгөртүү жана кошуу операцияларын каттоону колдойт, мүмкүн Карта/Кыскартуу парадигмасына ылайык иштөө, репликациялоону жана катага чыдамдуу конфигурацияларды курууну колдойт.

FerretDB 0.1.0 чыгарылышы PostgreSQLден маалыматтарды алуу ыкмасын толугу менен өзгөрттү. Мурда, ар бир келген MongoDB суроо-талабы үчүн PostgreSQL үчүн бир SQL сурамы түзүлүп, JSON форматы менен иштөө жана PostgreSQL тарабында натыйжаларды чыпкалоо функцияларын колдонуу менен түзүлгөн. PostgreSQL жана MongoDB json функцияларынын семантикасындагы айырмачылыктардан улам, ар кандай типтерди салыштырганда жана сорттоодо жүрүм-турумда дал келбестик болгон. Бул көйгөйдү чечүү үчүн, азыр PostgreSQLден маалыматтар ашыкча алынат жана натыйжа FerretDB тарабында чыпкаланып, MongoDBтин жүрүм-турумун көпчүлүк учурларда кайталоого мүмкүндүк берди.

Көбөйгөн шайкештиктин баасы аткаруунун төмөндөшү болду, алар келечектеги чыгарылыштарда жүрүм-турумда дал келбеген суроолорду гана FerretDB тарабында тандап чыпкалоо менен компенсациялоону күтүшөт. Мисалы, "db.collection.find({_id: 'some-id-value'})" суроосун толугу менен PostgreSQLде иштетүүгө болот. Өнүктүрүүнүн бул этабында долбоордун негизги максаты MongoDB менен шайкештикке жетишүү болуп саналат, ал эми аткаруу азырынча экинчи планга чыгарылды. Жаңы версиядагы функционалдык өзгөрүүлөрдүн арасында бардык бит операторлорун колдоо, “$eq” салыштыруу оператору, ошондой эле “$elemMatch” жана “$bitsAllClear” операторлору белгиленген.

Source: opennet.ru

Комментарий кошуу