Rilis stabil pertama dari FerretDB, implementasi MongoDB berdasarkan DBMS PostgreSQL

Rilis proyek FerretDB 1.0 telah diterbitkan, yang memungkinkan Anda mengganti DBMS MongoDB berorientasi dokumen dengan PostgreSQL tanpa membuat perubahan pada kode aplikasi. FerretDB diimplementasikan sebagai server proxy yang menerjemahkan panggilan ke MongoDB menjadi kueri SQL ke PostgreSQL, yang memungkinkan Anda menggunakan PostgreSQL sebagai penyimpanan sebenarnya. Versi 1.0 ditandai sebagai rilis stabil pertama yang siap untuk penggunaan umum. Kode ditulis dalam Go dan didistribusikan di bawah lisensi Apache 2.0.

Audiens target utama FerretDB adalah pengguna yang tidak menggunakan fitur lanjutan MongoDB dalam aplikasinya, tetapi ingin menggunakan tumpukan perangkat lunak yang sepenuhnya terbuka. Pada tahap pengembangannya saat ini, FerretDB mendukung subset dari fitur MongoDB yang paling umum digunakan dalam aplikasi biasa. Kebutuhan untuk mengimplementasikan FerretDB mungkin timbul sehubungan dengan transisi MongoDB ke lisensi SSPL tidak bebas, yang didasarkan pada lisensi AGPLv3, tetapi tidak terbuka, karena mengandung persyaratan diskriminatif untuk memasok di bawah lisensi SSPL tidak hanya kode aplikasi itu sendiri, tetapi juga kode sumber dari semua komponen yang terlibat dalam penyediaan layanan cloud.

MongoDB menempati ceruk antara sistem cepat dan terukur yang beroperasi pada data kunci/nilai dan DBMS relasional yang fungsional dan mudah untuk kueri. MongoDB mendukung penyimpanan dokumen dalam format mirip JSON, memiliki bahasa yang cukup fleksibel untuk menghasilkan kueri, dapat membuat indeks untuk berbagai atribut yang disimpan, secara efisien menyediakan penyimpanan objek biner yang besar, mendukung pencatatan operasi untuk mengubah dan menambahkan data ke database, dapat bekerja sesuai dengan paradigma Map/Reduce, mendukung replikasi dan membangun konfigurasi yang toleran terhadap kesalahan.

Di antara perubahan di FerretDB 1.0:

  • Menerapkan perintah createIndexes dan dropIndexes untuk membuat dan melepaskan satu atau beberapa indeks ke koleksi.
  • Perintah getMore telah diimplementasikan untuk menampilkan bagian baru dari hasil yang diperoleh dari eksekusi perintah yang mengembalikan kursor, seperti find dan agregat.
  • Menambahkan dukungan untuk operator agregasi $sum untuk menghitung jumlah nilai grup.
  • Menambahkan dukungan untuk operator $limit dan $skip untuk membatasi jumlah dan melewatkan dokumen saat menggabungkan.
  • Menambahkan dukungan untuk operator $count untuk menghitung dokumen saat menggabungkan.
  • Menambahkan dukungan untuk operator $unwind untuk mengurai bidang array dalam dokumen yang masuk dan membentuk daftar dengan dokumen terpisah untuk setiap elemen array.
  • Menambahkan dukungan parsial untuk perintah collStats, dbStats, dan dataSize untuk mendapatkan pengumpulan dan statistik database serta ukuran data.

Sumber: opennet.ru

Tambah komentar