MangoDB dimodernisasi dan sekarang berubah menjadi FerretDB

Baru-baru inis hari berita peluncuran proyek diumumkan FerretDB, (sebelumnya MangoDB), yang memungkinkan Anda mengganti DBMS berorientasi dokumen MongoDB dengan PostgreSQL tanpa membuat perubahan apa pun pada kode aplikasi Anda.

FerretDB diimplementasikan sebagai server proxy yang menerjemahkan panggilan ke MongoDB menjadi kueri SQL ke PostgreSQL, memungkinkan Anda menggunakan PostgreSQL sebagai penyimpanan sebenarnya.

FerretDB (sebelumnya MangoDB) didirikan untuk menjadi pengganti sumber terbuka de facto untuk MongoDB. FerretDB adalah proxy open source yang mengubah kueri protokol kawat MongoDB ke SQL, menggunakan PostgreSQL sebagai mesin database.

Kebutuhan untuk migrasi mungkin timbul karena transisi MongoDB ke lisensi SSPL non-bebas, yang didasarkan pada lisensi AGPLv3, tetapi bukan open source, karena berisi persyaratan diskriminatif untuk menyediakan di bawah lisensi SSPL tidak hanya aplikasi kode itu sendiri, tetapi juga kode sumber dari semua komponen yang terlibat dalam menyediakan layanan cloud.

Target audiens untuk FerretDB adalah pengguna yang tidak menggunakan fitur lanjutan dari MongoDB dalam aplikasi mereka, tetapi ingin menggunakan tumpukan perangkat lunak yang benar-benar terbuka.

Dalam tahap pengembangan saat ini, FerretDB masih mendukung hanya sebagian dari fitur MongoDB yang paling sering digunakan dalam aplikasi tipikal. Di masa depan, mereka berencana untuk mencapai dukungan driver penuh untuk MongoDB dan menyediakan kemampuan untuk menggunakan FerretDB sebagai pengganti transparan untuk MongoDB.

Harus diingat itu MongoDB menempati ceruk di antara sistem yang cepat dan skalabel yang beroperasi pada data dalam format kunci/nilai, dan DBMS relasional, fungsional dan nyaman dalam menghasilkan kueri.

Sebagian besar pengguna MongoDB tidak memerlukan banyak fitur lanjutan yang ditawarkan MongoDB; namun, mereka membutuhkan solusi database open source yang mudah digunakan. Menyadari hal ini, FerretDB hadir untuk mengisi celah tersebut.

MongoDB mendukung penyimpanan dokumen dalam format seperti JSON, memiliki bahasa yang cukup fleksibel untuk menghasilkan kueri, dapat membuat indeks untuk berbagai atribut yang disimpan, menyediakan penyimpanan objek biner besar yang efisien, mendukung pencatatan operasi untuk mengubah dan menambahkan data ke database, ia dapat bekerja sesuai dengan paradigma Map/Reduce, mendukung replikasi dan konstruksi konfigurasi yang toleran terhadap kesalahan.

Dalam rilis FerretDB 0.1.0 dicatat bahwa sepenuhnya didesain ulang cara data PostgreSQL diambil. Sebelumnya, untuk setiap permintaan MongoDB yang masuk, kueri SQL ke PostgreSQL dibuat, menggunakan fungsi untuk bekerja dengan format JSON dan memfilter hasilnya di sisi PostgreSQL.

Karena perbedaan dalam semantik fungsi PostgreSQL dan MongoDB json, ada ketidaksesuaian dalam perilaku ketika membandingkan dan memesan jenis yang berbeda. Untuk mengatasi masalah ini, sampel data yang berlebihan sekarang diekstraksi dari PostgreSQL dan penyaringan hasilnya dilakukan di sisi FerretDB, yang memungkinkan untuk mengulangi perilaku MongoDB di sebagian besar situasi.

Harga peningkatan kompatibilitas adalah penalti kinerja, yang dalam rilis mendatang diharapkan diimbangi dengan penyaringan selektif di sisi FerretDB dari hanya kueri yang memiliki perbedaan perilaku.

Misalnya, kueri "db.collection.find({_id: 'some-id-value'})" dapat diproses sepenuhnya di PostgreSQL. Tujuan utama proyek pada tahap pengembangan ini adalah untuk mencapai kompatibilitas dengan MongoDB, dan kinerja masih diturunkan ke latar belakang.

Dari perubahan fungsional dalam versi baru, ada dukungan untuk semua operator bitwise, operator perbandingan "$e", serta operator "$elemMatch" dan "$bitsAllClear".

Akhirnya bagi mereka yang tertarik untuk mengetahui lebih banyak tentangnya, mereka harus tahu bahwa kode tersebut ditulis dalam Go dan didistribusikan di bawah lisensi Apache 2.0 dan Anda dapat memeriksa kodenya di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.