Πρώτη σταθερή έκδοση του FerretDB, υλοποίηση MongoDB βασισμένη στο PostgreSQL DBMS

Δημοσιεύτηκε η κυκλοφορία του έργου FerretDB 1.0, το οποίο σας επιτρέπει να αντικαταστήσετε το DBMS MongoDB που βασίζεται σε έγγραφα με το PostgreSQL χωρίς να κάνετε αλλαγές στον κώδικα της εφαρμογής. Το FerretDB υλοποιείται ως διακομιστής μεσολάβησης που μεταφράζει τις κλήσεις προς το MongoDB σε ερωτήματα SQL στο PostgreSQL, το οποίο σας επιτρέπει να χρησιμοποιείτε το PostgreSQL ως πραγματικό χώρο αποθήκευσης. Η έκδοση 1.0 επισημαίνεται ως η πρώτη σταθερή έκδοση έτοιμη για γενική χρήση. Ο κώδικας είναι γραμμένος στο Go και διανέμεται με την άδεια Apache 2.0.

Το κύριο κοινό-στόχος για το FerretDB είναι χρήστες που δεν χρησιμοποιούν προηγμένες λειτουργίες MongoDB στις εφαρμογές τους, αλλά θέλουν να χρησιμοποιήσουν μια εντελώς ανοιχτή στοίβα λογισμικού. Στο τρέχον στάδιο ανάπτυξής του, το FerretDB υποστηρίζει ένα υποσύνολο των χαρακτηριστικών MongoDB που χρησιμοποιούνται πιο συχνά σε τυπικές εφαρμογές. Η ανάγκη εφαρμογής του FerretDB μπορεί να προκύψει σε σχέση με τη μετάβαση του MongoDB σε μια μη ελεύθερη άδεια SSPL, η οποία βασίζεται στην άδεια AGPLv3, αλλά δεν είναι ανοιχτή, καθώς περιέχει μια διακριτική απαίτηση να παρέχεται βάσει της άδειας SSPL όχι μόνο ο ίδιος ο κώδικας εφαρμογής, αλλά και οι πηγαίοι κώδικες όλων των στοιχείων που εμπλέκονται στην παροχή υπηρεσιών cloud.

Το MongoDB καταλαμβάνει μια θέση μεταξύ γρήγορων και επεκτάσιμων συστημάτων που λειτουργούν σε δεδομένα κλειδιού/τιμής και σχεσιακών DBMS που είναι λειτουργικά και εύκολα στην αναζήτηση. Το MongoDB υποστηρίζει την αποθήκευση εγγράφων σε μορφή JSON, έχει μια αρκετά ευέλικτη γλώσσα για τη δημιουργία ερωτημάτων, μπορεί να δημιουργήσει ευρετήρια για διάφορα αποθηκευμένα χαρακτηριστικά, παρέχει αποτελεσματικά αποθήκευση μεγάλων δυαδικών αντικειμένων, υποστηρίζει καταγραφή λειτουργιών για αλλαγή και προσθήκη δεδομένων στη βάση δεδομένων, μπορεί λειτουργεί σύμφωνα με το παράδειγμα Χάρτης/Μείωση, υποστηρίζει την αναπαραγωγή και τη δημιουργία διαμορφώσεων ανεκτικών σφαλμάτων.

Μεταξύ των αλλαγών στο FerretDB 1.0:

  • Εφαρμόστηκαν εντολές createIndexes και dropIndexes για τη δημιουργία και την απόθεση ενός ή περισσότερων ευρετηρίων σε μια συλλογή.
  • Η εντολή getMore έχει εφαρμοστεί για να εμφανίζει ένα νέο τμήμα του αποτελέσματος που προκύπτει από την εκτέλεση εντολών που επιστρέφουν έναν δρομέα, όπως εύρεση και συγκεντρωτική.
  • Προστέθηκε υποστήριξη για τον τελεστή συνάθροισης $sum για τον υπολογισμό του αθροίσματος των τιμών της ομάδας.
  • Προστέθηκε υποστήριξη για τους τελεστές $limit και $skip για περιορισμό του αριθμού και παράλειψη εγγράφων κατά τη συγκέντρωση.
  • Προστέθηκε υποστήριξη για τον τελεστή $count για μέτρηση εγγράφων κατά τη συγκέντρωση.
  • Προστέθηκε υποστήριξη για τον τελεστή $unwind για ανάλυση πεδίων πίνακα στα εισερχόμενα έγγραφα και σχηματισμό λίστας με ξεχωριστό έγγραφο για κάθε στοιχείο πίνακα.
  • Προστέθηκε μερική υποστήριξη για εντολές collStats, dbStats και dataSize για λήψη στατιστικών στοιχείων συλλογής και βάσης δεδομένων και μεγέθους δεδομένων.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο