rqlite, ένα εξαιρετικό ελαφρύ κατανεμημένο σχεσιακό DBMS

Si ψάχνετε για ένα κατανεμημένο DBMS που χρησιμοποιεί το SQLite ως μηχανή αποθήκευσης, επιτρέψτε μου να σας πω αυτό Το rqlite είναι αυτό για εσάς, δεδομένου ότι επιτρέπει την οργάνωση του έργου ενός συμπλέγματος που βασίζεται σε συγχρονισμένες αποθήκες.

Από τις δυνατότητες rqlite, επισημαίνεται η ευκολία εγκατάστασης, εφαρμογής και συντήρησης κατανεμημένου χώρου αποθήκευσης ανθεκτικό σε σφάλματα, το οποίο είναι κάπως παρόμοιο με το etcd και τον Πρόξενο, αλλά χρησιμοποιεί ένα σχεσιακό μοντέλο δεδομένων αντί για μορφή κλειδιού / τιμής.

Σχετικά με το rqlite

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

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

Το κύριο επίκεντρο είναι η ανοχή σφαλμάτων, έτσι το DBMS κλίμακα μόνο σε λειτουργίες ανάγνωσης, και οι εργασίες εγγραφής είναι το εμπόδιο. Είναι δυνατή η εκτέλεση ενός συμπλέγματος rqlite από έναν μόνο κόμβο και μια τέτοια λύση μπορεί να χρησιμοποιηθεί για την παροχή πρόσβασης στο SQLite μέσω HTTP χωρίς να παρέχεται ανοχή σφαλμάτων.

Δεδομένα SQLite σε κάθε κόμβο δεν αποθηκεύονται σε αρχείο, αλλά στη μνήμη. Σε επίπεδο επιπέδου με την εφαρμογή του πρωτοκόλλου Raft, τηρείται μια εγγραφή όλων των εντολών SQLite που οδηγούν σε αλλαγή στη βάση δεδομένων.

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

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

Από τα χαρακτηριστικά του rqlite:

  • Ευκολία ανάπτυξης συμπλέγματος, χωρίς την ανάγκη για ξεχωριστή εγκατάσταση SQLite.
  • Δυνατότητα γρήγορης απόκτησης αναπαραγωγής SQL.
  • Έτοιμο για χρήση σε έργα παραγωγής.
  • Διαθεσιμότητα του HTTP (S) API, το οποίο επιτρέπει την ενημέρωση δεδομένων σε κατάσταση δέσμης και τον καθορισμό του κόμβου οδηγού του συμπλέγματος. Παρέχεται επίσης μια διεπαφή γραμμής εντολών και βιβλιοθήκες πελατών για διάφορες γλώσσες προγραμματισμού.
  • Η παρουσία μιας υπηρεσίας για τον ορισμό άλλων κόμβων που σας επιτρέπει να δημιουργείτε δυναμικά συμπλέγματα.
  • Υποστήριξη για κρυπτογράφηση ανταλλαγής δεδομένων μεταξύ κόμβων.
  • Η δυνατότητα προσαρμογής του επιπέδου ελέγχου για τη συνάφεια και τη συνέπεια των δεδομένων κατά την ανάγνωση.
  • Προαιρετική ικανότητα σύνδεσης κόμβων μόνο για ανάγνωση που δεν συμμετέχουν στον προσδιορισμό συναίνεσης και χρησιμοποιούνται για την αύξηση της κλιμάκωσης του συμπλέγματος για λειτουργίες ανάγνωσης.
  • Υποστήριξη για την εγγενή μορφή συναλλαγών βάσει συνδυασμού εντολών σε ένα μόνο αίτημα (δεν υποστηρίζονται συναλλαγές που βασίζονται σε BEGIN, COMMIT, ROLLBACK, SAVEPOINT και RELEASE).

Σχετικά με το rqlite 6.0

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

Κόμβοι Rqlite τώρα μπορεί να πολλαπλές πολλαπλές λογικές συνδέσεις μεταξύ τους χρησιμοποιώντας τις συνδέσεις TCP που δημιουργούνται μεταξύ των κόμβων από το πρωτόκολλο Raft. Εάν το αίτημα απαιτεί την εξουσία του κόμβου ηγέτη, αλλά αποστέλλεται στον δευτερεύοντα κόμβο, ο δευτερεύων κόμβος μπορεί να καθορίσει τη διεύθυνση του αρχηγού και να τη μεταδώσει στον πελάτη, χωρίς να εκτελέσει τον υπολογισμό της συναίνεσης Raft.

Η αλλαγή αφαίρεσε επίσης το ξεχωριστό στοιχείο για συγχρονισμό μεταδεδομένων και αφαίρεσε τον ξεχωριστό χειρισμό της κατάστασης και των μεταδεδομένων του Raft.

Οι δευτερεύοντες κόμβοι τώρα στέλνουν αιτήματα στον κόμβο μολύβδου μόνο όταν είναι απαραίτητο, όταν είναι απαραίτητο να βρείτε τη διεύθυνση του κόμβου δυνητικού πελάτη. Το API παρέχει τη δυνατότητα λήψης πληροφοριών σχετικά με την κατάσταση άλλων κόμβων στο σύμπλεγμα. Η εντολή Sysdump προστέθηκε στο CLI.

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


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

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

*

*

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