Pelepasan FerretDB 0.1, palaksanaan MongoDB dumasar kana DBMS PostgreSQL

Pelepasan proyék FerretDB 0.1 (baheulana MangoDB) parantos diterbitkeun, ngamungkinkeun anjeun ngagentos DBMS MongoDB anu berorientasi dokumen sareng PostgreSQL tanpa ngarobih kode aplikasi. FerretDB dilaksanakeun salaku server proxy anu narjamahkeun telepon ka MangoDB kana queries SQL ka PostgreSQL, sahingga PostgreSQL bisa dipaké salaku gudang sabenerna. Kodeu ditulis dina Go sareng disebarkeun dina lisénsi Apache 2.0.

Kabutuhan pikeun migrasi tiasa timbul kusabab transisi MongoDB kana lisénsi SSPL proprietary, anu didasarkeun kana lisénsi AGPLv3, tapi henteu kabuka, sabab ngandung sarat diskriminatif pikeun ngirimkeun lisensi SSPL henteu ngan ukur kode aplikasi sorangan, tapi ogé. kode sumber sadaya komponén aub dina layanan awan penyediaan.

Pamirsa sasaran FerretDB nyaéta pangguna anu henteu nganggo kamampuan canggih MongoDB dina aplikasina, tapi hoyong nganggo tumpukan parangkat lunak anu lengkep. Dina tahap pangwangunan ayeuna, FerretDB masih ngadukung ngan sabagian tina kamampuan MongoDB anu paling sering dianggo dina aplikasi anu biasa. Dina mangsa nu bakal datang, aranjeunna rencanana pikeun ngahontal kasaluyuan pinuh ku drivers pikeun MongoDB sarta nyadiakeun kamampuhan pikeun ngagunakeun FerretDB salaku gaganti transparan pikeun MongoDB.

Hayu urang ngelingan yen MongoDB ngawengku ceruk antara sistem saum sareng scalable nu ngoperasikeun data dina format konci / nilai, sarta relational DBMSs anu fungsi sarta gampang pikeun ngarumuskeun queries. MongoDB ngarojong nyimpen dokumén dina format JSON-kawas, ngabogaan basa anu cukup fléksibel pikeun generating queries, bisa nyieun indexes pikeun sagala rupa atribut disimpen, éfisién nyadiakeun gudang objék binér badag, ngarojong logging operasi pikeun ngarobah jeung nambahkeun data kana database, bisa karya luyu jeung paradigma Peta / Ngurangan, ngarojong réplikasi jeung pangwangunan konfigurasi lepat-toleran.

Pelepasan FerretDB 0.1.0 parantos ngadesain ulang metodeu pikeun nyandak data tina PostgreSQL. Saméméhna, pikeun tiap pamundut MongoDB asup, hiji query SQL dihasilkeun kana PostgreSQL, ngagunakeun fungsi pikeun gawé bareng format JSON sarta nyaring hasil dina samping PostgreSQL. Kusabab bédana semantik tina PostgreSQL sareng fungsi json MongoDB, aya bédana dina paripolah nalika ngabandingkeun sareng nyortir jinis anu béda. Pikeun ngajawab masalah ieu, data ayeuna redundantly fetched ti PostgreSQL, sarta hasilna disaring dina sisi FerretDB, nu ngamungkinkeun pikeun ngayakeun réplikasi paripolah MongoDB dina kalolobaan kaayaan.

Harga ngaronjat kasaluyuan éta panurunan dina kinerja, nu di release hareup maranéhanana ngaharepkeun pikeun ngimbangan ku selektif nyaring dina samping FerretDB ngan queries nu aya béda dina kabiasaan. Contona, query "db.collection.find({_id: 'some-id-value'})" bisa diolah sagemblengna dina PostgreSQL. Tujuan utama proyék dina tahap pamekaran ieu nyaéta pikeun ngahontal kasaluyuan sareng MongoDB, sareng kinerja diturunkeun ka latar tukang ayeuna. Diantara parobahan fungsi dina versi anyar, rojongan pikeun sakabéh operator bit, operator ngabandingkeun "$ eq", kitu ogé operator "$ elemMatch" jeung "$ bitsAllClear".

sumber: opennet.ru

Tambahkeun komentar