Το Litestream εισήχθη με την εφαρμογή του συστήματος αναπαραγωγής για το SQLite

Ο Ben Johnson, συγγραφέας του χώρου αποθήκευσης BoltDB NoSQL, παρουσίασε το έργο Litestream, το οποίο παρέχει ένα πρόσθετο για την οργάνωση της αναπαραγωγής δεδομένων στο SQLite. Το Litestream δεν απαιτεί αλλαγές στο SQLite και μπορεί να λειτουργήσει με οποιαδήποτε εφαρμογή χρησιμοποιεί αυτήν τη βιβλιοθήκη. Η αναπαραγωγή πραγματοποιείται με μια ξεχωριστά εκτελούμενη διαδικασία παρασκηνίου που παρακολουθεί τις αλλαγές σε αρχεία από τη βάση δεδομένων και τις μεταφέρει σε άλλο αρχείο ή σε εξωτερικό χώρο αποθήκευσης. Ο κώδικας του έργου είναι γραμμένος στο Go και διανέμεται με την άδεια Apache 2.0.

Όλη η αλληλεπίδραση με τη βάση δεδομένων πραγματοποιείται μέσω του τυπικού SQLite API, δηλ. Το Litestream δεν παρεμβαίνει άμεσα στη λειτουργία, δεν επηρεάζει την απόδοση και δεν μπορεί να βλάψει τα περιεχόμενα της βάσης δεδομένων, γεγονός που διακρίνει το Litestream από λύσεις όπως το Rqlite και το Dqlite. Οι αλλαγές παρακολουθούνται ενεργοποιώντας το αρχείο καταγραφής WAL ("Write-Ahead Log") στο SQLite. Για εξοικονόμηση χώρου αποθήκευσης, το σύστημα συγκεντρώνει περιοδικά τη ροή των αλλαγών σε τμήματα βάσης δεδομένων (στιγμιότυπα), πάνω από τα οποία αρχίζουν να συσσωρεύονται άλλες αλλαγές. Ο χρόνος για τη δημιουργία τμημάτων υποδεικνύεται στις ρυθμίσεις· για παράδειγμα, μπορείτε να δημιουργήσετε φέτες μία φορά την ημέρα ή μία φορά την ώρα.

Οι κύριοι τομείς εφαρμογής του Litestream περιλαμβάνουν την οργάνωση ασφαλών αντιγράφων ασφαλείας και τη διανομή του φορτίου ανάγνωσης σε πολλούς διακομιστές. Υποστηρίζει τη μεταφορά της ροής αλλαγών σε Amazon S3, Azure Blob Storage, Backblaze B2, DigitalOcean Spaces, Scaleway Object Storage, Google Cloud Storage, Linode Object Storage ή οποιονδήποτε εξωτερικό κεντρικό υπολογιστή που υποστηρίζει το πρωτόκολλο SFTP. Εάν τα περιεχόμενα της κύριας βάσης δεδομένων είναι κατεστραμμένα, το αντίγραφο ασφαλείας μπορεί να αποκατασταθεί από μια κατάσταση που αντιστοιχεί σε ένα καθορισμένο χρονικό σημείο, μια συγκεκριμένη αλλαγή, την τελευταία αλλαγή ή ένα καθορισμένο τμήμα.

Πηγή: opennet.ru

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