Pagpagawas sa FerretDB 0.1, pagpatuman sa MongoDB base sa PostgreSQL DBMS

Ang pagpagawas sa FerretDB 0.1 nga proyekto (kaniadto MangoDB) gipatik na, nga nagtugot kanimo sa pag-ilis sa dokumento-oriented nga DBMS MongoDB sa PostgreSQL nga walay pagbag-o sa aplikasyon code. Ang FerretDB gipatuman isip proxy server nga naghubad sa mga tawag sa MangoDB ngadto sa SQL query ngadto sa PostgreSQL, nga nagtugot sa PostgreSQL nga gamiton isip aktuwal nga storage. Ang code gisulat sa Go ug giapod-apod ubos sa Apache 2.0 nga lisensya.

Ang panginahanglan alang sa paglalin mahimong motumaw tungod sa transisyon sa MongoDB ngadto sa usa ka proprietary SSPL nga lisensya, nga gibase sa AGPLv3 nga lisensya, apan dili bukas, tungod kay kini adunay usa ka discriminatory nga kinahanglanon sa paghatod ubos sa SSPL lisensya dili lamang sa aplikasyon code sa iyang kaugalingon, apan usab ang source code sa tanang component nga nalambigit sa provision cloud service.

Ang target nga mamiminaw sa FerretDB mao ang mga tiggamit nga wala mogamit sa mga advanced nga kapabilidad sa MongoDB sa ilang mga aplikasyon, apan gusto nga mogamit usa ka hingpit nga bukas nga software stack. Sa kasamtangan nga yugto sa kalamboan, gisuportahan gihapon sa FerretDB ang bahin lamang sa mga kapabilidad sa MongoDB nga kasagarang gigamit sa kasagarang mga aplikasyon. Sa umaabot, nagplano sila nga makab-ot ang hingpit nga pagkaangay sa mga drayber alang sa MongoDB ug maghatag katakus sa paggamit sa FerretDB ingon usa ka transparent nga kapuli sa MongoDB.

Hinumdumi nga ang MongoDB nag-okupar sa usa ka niche tali sa paspas ug scalable nga mga sistema nga naglihok sa datos sa yawe / bili nga format, ug relational nga DBMS, magamit ug sayon ​​sa pagmugna og mga pangutana. Gisuportahan sa MongoDB ang pagtipig sa mga dokumento sa usa ka format nga sama sa JSON, adunay usa ka medyo flexible nga lengguwahe alang sa pagmugna og mga pangutana, makahimo og mga indeks alang sa nagkalain-laing gitipigan nga mga hiyas, epektibo nga naghatag og pagtipig sa dagkong binary nga mga butang, nagsuporta sa pag-log sa mga operasyon aron mausab ug makadugang sa datos sa database, mahimo pagtrabaho uyon sa paradigm Map/Reduce, nagsuporta sa pagkopya ug paghimo og mga pag-configure nga dili matugoton sa sayup.

Ang pagpagawas sa FerretDB 0.1.0 hingpit nga gidesinyo pag-usab ang pamaagi sa pagkuha sa datos gikan sa PostgreSQL. Kaniadto, alang sa matag umaabot nga hangyo sa MongoDB, usa ka pangutana sa SQL ang gihimo sa PostgreSQL, gamit ang mga gimbuhaton alang sa pagtrabaho kauban ang format sa JSON ug pagsala sa mga resulta sa bahin sa PostgreSQL. Tungod sa mga kalainan sa mga semantiko sa PostgreSQL ug MongoDB json nga mga gimbuhaton, adunay kalainan sa pamatasan sa pagtandi ug paghan-ay sa lainlaing mga tipo. Aron masulbad kini nga problema, ang datos karon sobra nga gikuha gikan sa PostgreSQL, ug ang resulta gisala sa FerretDB nga bahin, nga nagpaposible sa pagsundog sa kinaiya sa MongoDB sa kadaghanan nga mga sitwasyon.

Ang presyo sa dugang nga pagkaangay usa ka pagkunhod sa pasundayag, nga sa umaabot nga mga pagpagawas gilauman nila nga mabayran pinaagi sa pinili nga pagsala sa kilid sa FerretDB nga mga pangutana lamang kung diin adunay kalainan sa pamatasan. Pananglitan, ang pangutana nga "db.collection.find({_id: 'some-id-value'})" mahimong maproseso sa hingpit sa PostgreSQL. Ang panguna nga katuyoan sa proyekto sa kini nga yugto sa pag-uswag mao ang pagkab-ot sa pagkaangay sa MongoDB, ug ang pasundayag gibalhin sa background sa karon. Taliwala sa mga pagbag-o sa pag-andar sa bag-ong bersyon, ang suporta alang sa tanan nga mga bit operator, ang operator sa pagtandi sa "$eq", ingon man ang mga operator nga "$elemMatch" ug "$bitsAllClear".

Source: opennet.ru

Idugang sa usa ka comment