Unang matatag na paglabas ng FerretDB, pagpapatupad ng MongoDB batay sa PostgreSQL DBMS

Ang paglabas ng proyekto ng FerretDB 1.0 ay nai-publish, na nagbibigay-daan sa iyong palitan ang DBMS MongoDB na nakatuon sa dokumento ng PostgreSQL nang hindi gumagawa ng mga pagbabago sa code ng aplikasyon. Ang FerretDB ay ipinatupad bilang isang proxy server na nagsasalin ng mga tawag sa MongoDB sa mga SQL query sa PostgreSQL, na nagbibigay-daan sa iyong gamitin ang PostgreSQL bilang ang aktwal na imbakan. Ang Bersyon 1.0 ay minarkahan bilang ang unang stable na release na handa na para sa pangkalahatang paggamit. Ang code ay nakasulat sa Go at ipinamahagi sa ilalim ng lisensya ng Apache 2.0.

Ang pangunahing target na audience para sa FerretDB ay mga user na hindi gumagamit ng MongoDB advanced na feature sa kanilang mga application, ngunit gustong gumamit ng ganap na bukas na software stack. Sa kasalukuyang yugto ng pag-unlad nito, sinusuportahan ng FerretDB ang isang subset ng mga tampok ng MongoDB na pinakakaraniwang ginagamit sa mga karaniwang application. Ang pangangailangang ipatupad ang FerretDB ay maaaring lumitaw kaugnay ng paglipat ng MongoDB sa isang hindi-libreng SSPL na lisensya, na nakabatay sa lisensya ng AGPLv3, ngunit hindi bukas, dahil naglalaman ito ng isang diskriminasyong kinakailangan upang ibigay sa ilalim ng lisensya ng SSPL hindi lamang ang application code mismo, ngunit pati na rin ang mga source code ng lahat ng mga bahagi na kasangkot sa pagbibigay ng mga serbisyo sa cloud.

Ang MongoDB ay sumasakop sa isang angkop na lugar sa pagitan ng mabilis at nasusukat na mga system na gumagana sa key/value data at mga relational na DBMS na gumagana at madaling i-query. Sinusuportahan ng MongoDB ang pag-iimbak ng mga dokumento sa isang format na tulad ng JSON, may medyo nababaluktot na wika para sa pagbuo ng mga query, maaaring lumikha ng mga index para sa iba't ibang naka-imbak na katangian, mahusay na nagbibigay ng imbakan ng malalaking binary object, sumusuporta sa pag-log ng mga operasyon upang baguhin at magdagdag ng data sa database, maaari gumana alinsunod sa paradigm Map/Reduce, sumusuporta sa pagtitiklop at pagbuo ng fault-tolerant na mga configuration.

Kabilang sa mga pagbabago sa FerretDB 1.0:

  • Ipinatupad ang createIndexes at dropIndexes na mga utos para sa paglikha at pag-drop ng isa o higit pang mga index sa isang koleksyon.
  • Ang utos ng getMore ay ipinatupad upang ipakita ang isang bagong bahagi ng resulta na nakuha mula sa pagpapatupad ng mga utos na nagbabalik ng isang cursor, tulad ng paghahanap at pinagsama-samang.
  • Nagdagdag ng suporta para sa operator ng $sum aggregation para kalkulahin ang kabuuan ng mga value ng pangkat.
  • Nagdagdag ng suporta para sa $limit at $skip operator upang limitahan ang bilang at laktawan ang mga dokumento kapag pinagsama-sama.
  • Nagdagdag ng suporta para sa operator ng $count para sa pagbibilang ng mga dokumento kapag pinagsama-sama.
  • Nagdagdag ng suporta para sa operator na $unwind para i-parse ang mga field ng array sa mga papasok na dokumento at bumuo ng listahan na may hiwalay na dokumento para sa bawat elemento ng array.
  • Nagdagdag ng bahagyang suporta para sa mga command ng collStats, dbStats at dataSize para makakuha ng mga istatistika ng koleksyon at database at laki ng data.

Pinagmulan: opennet.ru

Magdagdag ng komento