Το FerretDB 0.3 έχει ήδη κυκλοφορήσει, μάθετε τι νέο υπάρχει σε αυτόν τον εκσυγχρονισμό MangoDB

Πριν από μερικές εβδομάδες μοιραζόμαστε εδώ στο blog τις ειδήσεις αλλαγή του ονόματος του έργου MangoDB που σας επιτρέπει να αντικαταστήσετε το DBMS με προσανατολισμό εγγράφων της MongoDB με PostgreSQL χωρίς να κάνετε αλλαγές στον κώδικα της εφαρμογής σας.

Το νέο όνομα του έργου είναι FerretDB και πρόσφατα κυκλοφόρησε η έκδοση 0.3 του έργου. Η έκδοση FerretDB 0.3 εισάγει την εντολή findAndModify, η οποία τροποποιεί ένα έγγραφο αλλά επιστρέφει την αρχική του έκδοση, καθώς και τελεστές ενημέρωσης πεδίου, μεταξύ άλλων.

Για όσους εξακολουθούν να αγνοούν το FerretDB, θα πρέπει να το γνωρίζετε αυτό υλοποιείται ως διακομιστής μεσολάβησης που μεταφράζει τις κλήσεις προς το MongoDB σε ερωτήματα SQL σε PostgreSQL, που σας επιτρέπει να χρησιμοποιείτε την PostgreSQL ως πραγματικό χώρο αποθήκευσης.

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

Το κύριο κοινό-στόχος για το FerretDB είναι χρήστες που δεν χρησιμοποιούν τις προηγμένες δυνατότητες της MongoDB στις εφαρμογές τους, αλλά θέλουν να χρησιμοποιήσουν μια εντελώς ανοιχτή στοίβα λογισμικού.

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

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

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

Λόγω των διαφορών στη σημασιολογία των συναρτήσεων PostgreSQL και MongoDB json, υπήρχε ασυμφωνία στη συμπεριφορά κατά τη σύγκριση και την παραγγελία διαφορετικών τύπων. Για να λυθεί αυτό το πρόβλημα, ένα δείγμα περιττών δεδομένων εξάγεται τώρα από το PostgreSQL και το φιλτράρισμα του αποτελέσματος γίνεται στην πλευρά FerretDB, γεγονός που κατέστησε δυνατή την επανάληψη της συμπεριφοράς του MongoDB στις περισσότερες περιπτώσεις.

Οι κύριες καινοτομίες του FerretDB 0.3

Όπως αναφέρθηκε στην αρχή, η νέα έκδοση του FerretDB 0.3 ξεχωρίζει για την εισαγωγή του εντολή findAndModify, το οποίο τροποποιεί ένα έγγραφο, αλλά επιστρέφει την αρχική του έκδοση.

Άλλες αλλαγές που ξεχωρίζουν είναι αυτό Ο χειρισμός του αρνητικού μηδενός έχει βελτιωθεί, καθώς και υποστήριξη για την παραγγελία βαθμωτών τύπων δεδομένων.

Επίσης επισημαίνονται νέοι τελεστές ενημέρωσης πεδίου που εφαρμόζονται: $inc και $set, καθώς και υποστήριξη για την παραγγελία βαθμωτών τύπων δεδομένων.

Από την άλλη, αναφέρεται ότι έχουν γίνει διάφορες βελτιώσεις στον χειρισμό των εκδόσεων PostgreSQL και MongoDB.

Εκτός αυτού, Σημειώνεται επίσης ότι η εσφαλμένη δοκιμή για τον τελεστή $mod έχει διορθωθεί, Επίσης, ότι η δοκιμή εκδίδεται σε όλα τα λειτουργικά συστήματα ARM64 και ότι έχει προστεθεί περισσότερη ορατότητα για τα επίπεδα καταγραφής σφαλμάτων δρομολογητή/μεσολάβησης.

Από τις άλλες αλλαγές που ξεχωρίζουν από αυτήν τη νέα έκδοση:

  • Ενημέρωση CODEOWNERS
  • Συγχρονίστε εικονικούς ελεγκτές και σελ
  • Μετονομάστε τις OP_*σταθερές σε OpCode*σταθερές
  • Βελτιώστε το gopkg.in/yaml.v3
  • Συμπληρώστε το gopkg.in/yaml.v3 στα εργαλεία
  • Δημιουργία διαδρομής τύπου
  • Πανικός σε απροσδόκητες τιμές παραγγελίας
  • Προσθέστε μερικά σχόλια σε συναρτήσεις και μεταβλητές
  • Αφαιρέστε τον νεκρό κώδικα

Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες Στον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.