Έκδοση του DBMS Apache CouchDB 3.0 με προσανατολισμό σε έγγραφα

πήρε θέση απελευθέρωση μιας κατανεμημένης βάσης δεδομένων προσανατολισμένης σε έγγραφα Apache CouchDB 3.0, που ανήκουν στην κατηγορία των συστημάτων NoSQL. Πηγές έργου εξάπλωση άδεια σύμφωνα με το Apache 2.0.

Βελτιώσειςυλοποιείται στο Apache CouchDB 3.0:

  • Η προεπιλεγμένη διαμόρφωση έχει βελτιωθεί.
    Κατά την εκκίνηση, πρέπει τώρα να οριστεί ο χρήστης διαχειριστής, χωρίς τον οποίο ο διακομιστής θα τερματιστεί με σφάλμα (σας επιτρέπει να επιλύσετε προβλήματα με την εκκίνηση διακομιστών που αφήνουν ακούσια πρόσβαση χωρίς έλεγχο ταυτότητας). Οι κλήσεις προς "/_all_dbs" απαιτούν πλέον δικαιώματα διαχειριστή και όλες οι βάσεις δεδομένων δημιουργούνται από προεπιλογή και είναι προσβάσιμες μόνο στον διαχειριστή (οι παράμετροι πρόσβασης μπορούν να αλλάξουν μέσω του αντικειμένου "_security"). Από προεπιλογή, η επεξεργασία αντικειμένων στη βάση δεδομένων _users απαγορεύεται.

  • Προστέθηκε τη δυνατότητα δημιουργίας τμηματοποιημένων (διαμερισμένων) βάσεων δεδομένων που ορίζονται από τον χρήστη, καθιστώντας δυνατό τον καθορισμό των δικών σας κανόνων για τη διανομή εγγράφων σε τμήματα (εύρος θραυσμάτων). Προστέθηκαν ειδικές βελτιστοποιήσεις για κοινόχρηστες βάσεις δεδομένων σε προβολές και ευρετήρια Mango.
  • Εφαρμόστηκε λειτουργία αυτόματης διαίρεσης κατά την τμηματοποίηση (sharding). Στη βάση δεδομένων, είναι πλέον δυνατή η ανακατανομή δεδομένων μεταξύ των τμημάτων, λαμβάνοντας υπόψη την αύξηση της τιμής του παράγοντα q που χρησιμοποιείται για τον προσδιορισμό του επιπέδου ανάλυσης.
  • Προστέθηκε υποσύστημα ken για αυτόματη ευρετηρίαση στο παρασκήνιο και διατήρηση δευτερευόντων ευρετηρίων (JavaScript, Mango, ευρετήρια αναζήτησης κειμένου) ενημερωμένα χωρίς να ξεκινούν ρητά οι εργασίες κατασκευής τους.
  • Η διαδικασία smoosh που χρησιμοποιείται για την αυτόματη συσκευασία της βάσης δεδομένων έχει ξαναγραφεί πλήρως.
  • Προτάθηκε νέο υποσύστημα Ουρά IO, χρησιμοποιείται για την αλλαγή της προτεραιότητας I/O για ορισμένες λειτουργίες.
  • Εφάρμοσε ένα σύστημα δοκιμών παλινδρόμησης.
  • Προστέθηκε επίσημη υποστήριξη για πλατφόρμες arm64v8 (aarch64) και ppc64le (ppc64el).
  • Προστέθηκε υποστήριξη για σύνδεση με τη μηχανή JavaScript SpiderMonkey 1.8.5 (Κλάδος ESR του Firefox 60) με βελτιωμένη υποστήριξη για ES5, ES6 και ES2016+.
  • Περιλαμβάνεται μηχανή αναζήτησης Dreyfus βασίζεται στο Lucene, το οποίο απλοποιεί σημαντικά την ανάπτυξη μιας μηχανής αναζήτησης που βασίζεται στο CouchDB.
  • Προστέθηκε backend για καταγραφή χρησιμοποιώντας systemd-journald.
  • Προστέθηκε η ρύθμιση "[couchdb] single_node", όταν οριστεί, το CouchDB θα δημιουργήσει αυτόματα βάσεις δεδομένων συστήματος εάν λείπουν.
  • Η απόδοση της διαδικασίας couch_server έχει βελτιστοποιηθεί.
  • Το πρόγραμμα εγκατάστασης για την πλατφόρμα των Windows έχει βελτιωθεί σημαντικά.
  • Οι προβολές περιορίζονται σε 2^28 (268435456) αποτελέσματα. Αυτό το όριο μπορεί να διαμορφωθεί ξεχωριστά για κανονικές και τμηματικές προβολές χρησιμοποιώντας τις επιλογές query_limit και partition_query_limit στην ενότητα "[query_server_config]".
  • Μια ξεχωριστή διεπαφή διαχείρισης τοπικού κόμβου HTTP, που ξεκίνησε στη θύρα δικτύου 5986, καταργήθηκε, η λειτουργικότητα της οποίας είναι πλέον διαθέσιμη μέσω της κοινής διεπαφής διαχείρισης συμπλέγματος.
  • Το μέγιστο μέγεθος εγγράφου έχει μειωθεί στα 8 MB, γεγονός που μπορεί να προκαλέσει προβλήματα με την αναπαραγωγή δεδομένων από παλαιότερους διακομιστές μετά την αναβάθμιση σε CouchDB 3.0. Για να αυξήσετε το όριο, μπορείτε να χρησιμοποιήσετε τη ρύθμιση "[couchdb] max_document_size".
  • Έχει πραγματοποιηθεί μια σημαντική εκκαθάριση απαρχαιωμένων λειτουργιών, όπως οι κλήσεις _replicator και _external, τα πεδία disk_size και data_size και η επιλογή delayed_commits.
  • Η εκτέλεση του CouchDB απαιτεί πλέον Erlang/OTP 20.3.8.11+, 21.2.3+ ή 22.0.5. Θεωρητικά, η λειτουργικότητα με τον κλάδο Erlang/OTP 19 διατηρείται, αλλά καλύπτεται από δοκιμές.

Ας θυμηθούμε ότι το CouchDB αποθηκεύει δεδομένα σε μια μορφή ταξινομημένης λίστας και επιτρέπει τη μερική αναπαραγωγή δεδομένων μεταξύ πολλών βάσεων δεδομένων σε λειτουργία master-master με ταυτόχρονη ανίχνευση και επίλυση καταστάσεων σύγκρουσης. Κάθε διακομιστής αποθηκεύει το δικό του τοπικό σύνολο δεδομένων, συγχρονισμένα με άλλους διακομιστές, τα οποία μπορούν να ληφθούν εκτός σύνδεσης και να επαναλαμβάνονται περιοδικά οι αλλαγές. Συγκεκριμένα, αυτή η δυνατότητα καθιστά το CouchDB μια ελκυστική λύση για τον συγχρονισμό των ρυθμίσεων προγράμματος μεταξύ διαφορετικών υπολογιστών. Λύσεις που βασίζονται στο CouchDB έχουν εφαρμοστεί σε εταιρείες όπως το BBC, η Apple και το CERN.

Τα ερωτήματα CouchDB και η ευρετηρίαση δεδομένων μπορούν να εκτελεστούν σύμφωνα με το παράδειγμα ΜΕΙΩΣΗ ΧΑΡΤΗ, χρησιμοποιώντας JavaScript για τη δημιουργία λογικής δειγματοληψίας δεδομένων. Ο πυρήνας του συστήματος είναι γραμμένος σε Erlang, ο οποίος είναι βελτιστοποιημένος για τη δημιουργία κατανεμημένων συστημάτων που εξυπηρετούν πολλαπλά παράλληλα αιτήματα. Ο διακομιστής προβολής είναι γραμμένος σε C και βασίζεται στη μηχανή JavaScript από το έργο Mozilla. Η πρόσβαση στη βάση δεδομένων πραγματοποιείται χρησιμοποιώντας το πρωτόκολλο HTTP χρησιμοποιώντας ένα RESTful JSON API, το οποίο σας επιτρέπει να έχετε πρόσβαση σε δεδομένα, συμπεριλαμβανομένων των εφαρμογών Ιστού που εκτελούνται στο πρόγραμμα περιήγησης.

Η μονάδα αποθήκευσης δεδομένων είναι ένα έγγραφο που έχει ένα μοναδικό αναγνωριστικό, έκδοση και περιέχει ένα αυθαίρετο σύνολο ονομασμένων πεδίων σε μορφή κλειδιού/τιμής. Για την οργάνωση ενός ψευδοδομημένου συνόλου δεδομένων από αυθαίρετα έγγραφα (συγκέντρωση και επιλογή), χρησιμοποιείται η έννοια του σχηματισμού προβολών (προβολών), για να οριστεί ποια γλώσσα χρησιμοποιείται η JavaScript. Η JavaScript μπορεί επίσης να ορίσει λειτουργίες για την επικύρωση δεδομένων κατά την προσθήκη νέων εγγράφων σε μια συγκεκριμένη προβολή.

Πηγή: opennet.ru

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