Komunitas SQLite sedang ramai membahas tool sqlite3_rsync yang baru dirilis, yang ditambahkan ke repositori SQLite pada 10 September 2024 dan diumumkan secara resmi pada 21 Oktober 2024. Penambahan baru ini memicu perbandingan menarik dengan solusi yang sudah ada seperti Litestream, saat para pengembang mengevaluasi pendekatan terbaik untuk strategi replikasi dan backup database.
Apa yang Baru dari sqlite3_rsync?
sqlite3_rsync adalah solusi resmi SQLite untuk membuat salinan database yang konsisten di sistem lokal dan jarak jauh. Tool ini menggunakan protokol hemat bandwidth mirip dengan rsync tradisional, namun dengan peningkatan penting untuk menangani database SQLite:
- Konsistensi Transaksional : Berbeda dengan rsync biasa, sqlite3_rsync memastikan konsistensi database dengan membuat snapshot, mencegah kerusakan yang bisa terjadi saat menyalin database yang aktif
- Dukungan Database Aktif : Database sumber dan tujuan dapat tetap aktif selama penyalinan, dengan hanya replika yang bersifat read-only selama proses sinkronisasi
- Efisiensi Bandwidth : Tool ini biasanya hanya menggunakan 0,5% dari ukuran database dalam lalu lintas jaringan untuk database yang sudah tersinkronisasi, dengan maksimum sekitar 100,5% untuk database yang benar-benar berbeda
sqlite3_rsync vs Litestream: Tool Berbeda untuk Kebutuhan Berbeda
Diskusi komunitas telah menyoroti perbedaan penting antara sqlite3_rsync dan Litestream:
-
Model Sinkronisasi :
- sqlite3_rsync: Membuat snapshot pada waktu tertentu saat dijalankan secara eksplisit
- Litestream: Menyediakan streaming perubahan secara berkelanjutan
-
Kasus Penggunaan :
- sqlite3_rsync: Ideal untuk backup berkala dan mempertahankan salinan cadangan
- Litestream: Lebih cocok untuk replikasi real-time dan strategi backup berkelanjutan
Pertimbangan Praktis
Para pengembang sudah menemukan aplikasi praktis untuk sqlite3_rsync:
- Backup Otomatis : Beberapa pengguna berencana mengimplementasikan tool ini dengan timer systemd atau cron job untuk backup rutin
- Alur Kerja Pengembangan : Dapat digunakan untuk memelihara salinan database produksi untuk pengembangan
- Strategi Hybrid : Beberapa pengembang mempertimbangkan penggunaan kedua tool - Litestream untuk backup berkelanjutan dan sqlite3_rsync untuk replika pada waktu tertentu
Catatan Instalasi
Bagi yang ingin mengimplementasikan sqlite3_rsync, ada beberapa pertimbangan penting:
- Tool harus diinstal di sistem lokal dan jarak jauh
- Pengguna MacOS perlu menentukan lokasi executable menggunakan flag --exe karena batasan PATH
- Sinkronisasi jarak jauh Windows saat ini menghadapi tantangan dengan pengaturan daemon SSH
Karena tool ini relatif baru, komunitas secara aktif mengeksplorasi kemampuannya dan berbagi pengalaman implementasi, dengan pengembang seperti Simon Willison yang menyediakan panduan praktis untuk memulai dengan tool ini.