SQLite ฐานข้อมูลขนาดเล็กแบบทำงานเครื่องเดียวกับแอปพลิเคชั่น ออกเวอร์ชั่น 3.47.0 ปรับแก้บั๊กเล็กน้อยจำนวนมาก แต่เพิ่มฟีเจอร์สำคัญคือคำสั่ง sqlite3_rsync
คำสั่ง rsync
เวอร์ชั่นพิเศษที่เข้าใจ transaction ของฐานข้อมูลเพื่อให้สามารถซิงก์ฐานข้อมูลไปยังเครื่องสำรองได้
คำสั่ง rsync
นั้นอาศัยการเทียบค่าแฮชข้อมูลทีละบล็อค หากพบว่ามีบล็อคใดที่ปลายทางมีอยู่แล้วก็ไม่ต้องส่งข้อมูลไปใหม่ ทำให้การซิงก์ไฟล์ขนาดใหญ่แต่มีความเปลี่ยนแปลงเล็กน้อย (เช่นฐานข้อมูลที่อาจจะเก็บข้อมูลมานาน แต่แต่ละวันกลับมีการเปลี่ยนแปลงไม่มากนัก) ได้เปรียบมาก อัตราการส่งข้อมูลจะลดลงมาก หากไม่มีความเปลี่ยนแปลงเลยจะใช้แบนวิดท์เพียง 0.5% ของข้อมูลเต็มเท่านั้น
sqlite3_rsync
เป็นโปรแกรมที่เขียนขึ้นมาเฉพาะ ฟีเจอร์ไม่เท่ากับ rsync
ตัวจริง แต่ความพิเศษคือมันเข้าใจไฟล์ WAL ของ SQLite ทำให้สามารถซิงก์ข้อมูลโดยไม่ทำฐานข้อมูลฝั่งใดพังเลย โดยฝั่งปลายทางของการซิงก์นั้นสามารถคิวรีข้อมูลไปได้เรื่อยๆ (แต่ห้ามเขียน) แนวทางนี้ทำให้บริการที่เน้นการอ่านข้อมูล เช่น เว็บบล็อก สามารถกระจายฐานข้อมูลไปได้ไม่จำกัด
ก่อนหน้านี้มีโครงการภายนอก SQLite พยายามทำระบบซิงก์แบบนี้มาก่อนแล้ว เช่น Litestream แต่ครั้งนี้โครงการหลักก็ออกมาทำเครื่องมือซัพพอร์ตโดยตรง แม้จะอยู่ในสถานะทดลองเท่านั้นในช่วงแรก
ที่มา - SQLite
Comments
feature โหดม้ากกกก
<3
จิ๋วแต่แจ๋ว
..: เรื่อยไป
เคยวางแผนทำตู้เก็บเงิน แล้วอยากซิงค์ฐานข้อมูลหากันเองแบบ Offline ได้ด้วย sqlite ฟีเจอร์นี้เด็ดตอบโจทย์มากเลย
ใช้ Blockchain กระจายข้อมูลจากศูนย์กลาง❌
ใช้ Server แยก Backup ฐานข้อมูลลูกค้า❌
ใช้ SQLite กระจายข้อมูลจากศูนย์กลาง✅
ใช้ SQLite ช่วย Backup ที่เครื่องลูกค้าเอง✅
เดี๊ยวซักพักต้องมีทุก Platform แน่นอน
Cloudflare D1 ก็คงได้รับอานิสงส์