- ระบบที่เก็บฐานข้อมูล SQLite ไว้บนคลาวด์สตอเรจ และทำให้อ่านและเขียนได้โดยไม่ต้องดาวน์โหลดทั้งฐานข้อมูลทั้งหมด
- ปัจจุบันรองรับ Azure Blob Storage และ Google Cloud Storage
- ใช้โมดูล Block Cache VFS: ทำงานได้ในโหมด daemonless (อ่าน/เขียน) และโหมด daemon (อ่านอย่างเดียว)
สิ่งที่ GN⁺ สรุปไว้
- ระบบ "Cloud Backed SQLite" (CBS) เก็บฐานข้อมูลไว้ในบัญชีคลาวด์สตอเรจ และอนุญาตให้ไคลเอนต์ของสตอเรจเข้าถึงได้โดยไม่ต้องดาวน์โหลดฐานข้อมูลทั้งหมด
- ไคลเอนต์หลายตัวสามารถเข้าถึงฐานข้อมูลพร้อมกันได้ แต่มีเพียงไคลเอนต์ตัวเดียวเท่านั้นที่สามารถเขียนลงฐานข้อมูลได้
- ขณะนี้ CBS รองรับ Azure Blob Storage และ Google Cloud Storage และอาจรองรับระบบคลาวด์สตอเรจอื่น ๆ ได้ด้วย
- ฐานข้อมูล SQLite จะถูกแบ่งเป็นบล็อกขนาดคงที่และเก็บไว้ในระบบคลาวด์สตอเรจ
- ระบบนี้ประกอบด้วยองค์ประกอบพื้นฐานสำหรับจัดการคอนเทนเนอร์คลาวด์สตอเรจ, โปรเซสเดมอนที่ให้การเข้าถึงฐานข้อมูลระยะไกลแบบโลคัล, และโมดูล VFS สำหรับเข้าถึงฐานข้อมูลบนคลาวด์
- หากต้องการใช้ CBS แอปพลิเคชันต้องบิลด์และลิงก์ไฟล์ C และเฮดเดอร์ไฟล์ที่จำเป็น รวมถึงลิงก์กับ libcurl และ openssl
- ระบบสามารถทดสอบได้ด้วยชุดทดสอบอัตโนมัติ
- สามารถอัปโหลดฐานข้อมูลไปยังบัญชีคลาวด์สตอเรจได้ด้วยเครื่องมือบรรทัดคำสั่ง
- ในการเข้าถึงฐานข้อมูลที่เก็บไว้บนคลาวด์สตอเรจ ต้องสร้าง VFS, เชื่อมต่อคอนเทนเนอร์, เปิดแฮนเดิลฐานข้อมูล และรันสคริปต์ SQL
- ระบบมี API สำหรับรองรับระบบคลาวด์สตอเรจใหม่ ๆ และสำหรับอิมพลีเมนต์ virtual table
- บทความนี้กล่าวถึงการใช้คอนเทนเนอร์แบบปลอดภัยในระบบคลาวด์สตอเรจ
- คอนเทนเนอร์สามารถเชื่อมต่อได้ทั้งแบบปลอดภัยและไม่ปลอดภัย โดยการเชื่อมต่อแบบปลอดภัยจะเข้ารหัสข้อมูลด้วย AES OFB
- ไคลเอนต์ภายในเครื่องต้องมีข้อมูลรับรองคลาวด์สตอเรจที่ถูกต้องเพื่อรับคีย์เข้ารหัสจากโปรเซสเดมอน
- บทความนี้กล่าวถึงโมดูลในตัว
azure และ google สำหรับระบบคลาวด์สตอเรจ
- CBS API และเครื่องมือบรรทัดคำสั่งต้องใช้ข้อกำหนดของโมดูล ชื่อผู้ใช้ และค่าการยืนยันตัวตน
- บทความนี้ให้รายละเอียดของโมดูล
azure และวิธีสร้าง SAS token สำหรับการยืนยันตัวตน
- โมดูล
google ต้องใช้ project ID และ access token เพื่อเชื่อมต่อ CBS กับ Google Cloud Storage
- บทความนี้กล่าวถึงการเข้าถึงพร้อมกันจากไคลเอนต์หลายตัว และความจำเป็นในการ polling คอนเทนเนอร์เพื่อตรวจสอบการเปลี่ยนแปลง
- Blockcachevfs รองรับคำสั่ง PRAGMA สามรายการคือ
bcv_upload, bcv_poll และ bcv_client
- อินเทอร์เฟซ virtual table ประกอบด้วยตาราง
bcv_container และ bcv_database
- ตาราง
bcv_container มีข้อมูลเกี่ยวกับคอนเทนเนอร์ที่เชื่อมต่ออยู่ และตาราง bcv_database มีข้อมูลเกี่ยวกับฐานข้อมูลของแต่ละคอนเทนเนอร์
- บทความนี้กล่าวถึงโครงสร้างและหน้าที่ของตารางต่าง ๆ ในฐานข้อมูล blockcachevfs
- ตาราง
bcv_database มีข้อมูลเกี่ยวกับการเปลี่ยนแปลงในเครื่องของฐานข้อมูล
- ตาราง
bcv_http_log บันทึกคำขอ HTTP ที่ดำเนินการโดย VFS หรือเดมอนที่เชื่อมต่ออยู่
- ตาราง
bcv_kv ช่วยให้แอปพลิเคชันสามารถเขียนข้อมูลลงในคอนเทนเนอร์คลาวด์สตอเรจได้
- ตาราง
bcv_kv_meta ให้การเข้าถึงแบบอ่านอย่างเดียวต่อ HTTP header ของเซิร์ฟเวอร์คลาวด์สตอเรจ
- บทความนี้ยังมีข้อมูลอ้างอิงคำสั่งบรรทัดคำสั่งสำหรับการทำงานต่าง ๆ ในฐานข้อมูล blockcachevfs
- คำสั่งเดมอนทำให้โปรเซส
blockcachevfsd ทำงานเป็นเซิร์ฟเวอร์และรับการเชื่อมต่อจากไคลเอนต์ได้
- โปรเซสเดมอนรองรับตัวเลือกหลากหลายสำหรับการตั้งค่าและการบันทึกล็อก
1 ความคิดเห็น
ความเห็นจาก Hacker News