- เอนจินซิงก์ประสิทธิภาพสูงที่ทำงานเสมือน message bus สำหรับ AI และ Edge Computing
- ฐานข้อมูลเรียลไทม์แบบ log-native : ออกแบบมาเพื่อแก้ปัญหา ความสอดคล้องของข้อมูลและการตอบสนองแบบเรียลไทม์ ในสภาพแวดล้อม Edge AI และ Edge Computing
- ผสาน B+Tree storage engine กับการทำ replication แบบสตรีมมิงบนพื้นฐานของ WAL (Write-Ahead Logging) เพื่อรับประกัน การทำ replication ระดับต่ำกว่าหนึ่งวินาที และ ความสอดคล้องที่เข้มงวด ระหว่างโหนดหลายร้อยตัว
- โครงสร้างแบบ multimodel รองรับการจัดเก็บแบบ Key-Value, Wide-Column และ Large Object (LOB)
- การแจ้งเตือนแบบเรียลไทม์บนพื้นฐานของ ZeroMQ ช่วยให้ตรวจจับการเปลี่ยนแปลงได้ในระดับมิลลิวินาที
- การออกแบบแบบ Edge-First ที่เหมาะกับสถาปัตยกรรม local-first
- รองรับ multi-tenancy ผ่าน namespace isolation
- ความแตกต่างจากระบบเดิม:
- LMDB/BoltDB เป็น local storage ที่เร็ว แต่ทำ replication ไม่ได้
- etcd/Consul มีความสอดคล้องสูง แต่มีข้อจำกัดด้านการขยายระบบ
- Kafka/NATS เด่นด้านสตรีมมิง แต่ไม่สามารถ query ได้
- UnisonDB เข้ามาเติมช่องว่างนี้ด้วย โครงสร้างเดี่ยวแบบยึดล็อกเป็นศูนย์กลางที่รวม storage และ streaming เข้าด้วยกัน
- สถาปัตยกรรมหลักแบบ 3 เลเยอร์
- 1. WALFS (Write-Ahead Log File System) – ระบบไฟล์ล็อกบนพื้นฐานของ mmap ที่ปรับให้เหมาะกับการอ่าน/เขียนขนาดใหญ่
- โครงสร้างล็อกแบบแบ่งเป็นเซกเมนต์ ช่วย ปรับให้เหมาะทั้งการเขียนแบบลำดับและการอ่านแบบสุ่ม
- รองรับ zero-copy read, การค้นหาตาม offset และ การ tail แบบเรียลไทม์
- โครงสร้างผู้อ่านแบบขนานที่ทำให้หลายโหนด replication อ่านพร้อมกันได้
- 2. Engine – storage แบบไฮบริดที่รวม WAL, MemTable และ B-Tree
- บนพื้นฐานของ WALFS โดยผสาน MemTable (skiplist) กับ B-Tree index
- ใช้ FlatBuffers ทำให้ส่งข้อมูลระหว่าง replication ได้โดยไม่ต้อง deserialize
- รองรับ atomic multi-key transaction และรับประกันความสอดคล้องในระดับ commit
- รองรับการประมวลผลและสตรีม LOB (large object) แบบแบ่งเป็นชังก์ในระดับทรานแซกชัน
- รองรับการอัปเดตบางคอลัมน์และการขยายสคีมาแบบไดนามิกด้วย Wide-Column model
- 3. Replication – replication แบบสตรีมมิงบนพื้นฐาน WAL พร้อมความสามารถในการติดตาม offset
- ใช้ WAL-based streaming replication โดยให้ follower ติดตาม offset เพื่อซิงก์แบบเรียลไทม์
- ใช้ FlatBuffer log record เพื่อคงโครงสร้างข้อมูลแบบ self-describing
- ทำสตรีมมิงได้อย่างมีประสิทธิภาพด้วย batch transfer
- ประสิทธิภาพการอ่านเร็วกว่า BoltDB ราว 2 เท่า พร้อมการออกแบบที่เน้นความสอดคล้อง
- แนวทางที่ UnisonDB ใช้แก้ปัญหา
- ผสาน append-only log + B-Tree เพื่อให้ได้ทั้งการเขียนความเร็วสูงและการอ่านแบบช่วงอย่างมีประสิทธิภาพ
- รองรับ multi-key replication แบบอิงทรานแซกชัน และ column-aware synchronization
- ทำ replication ในตัวด้วย gRPC WAL streaming + B-Tree snapshot
- ใช้ โครงสร้างที่ไม่มี compaction เพื่อให้ได้ latency ที่คาดการณ์ได้และ throughput สูง
- ไลเซนส์: Apache License 2.0
- ภาษาในการพัฒนา: Go
- กรณีใช้งานที่เหมาะสม: Edge AI, Distributed IoT, การประมวลผลข้อมูลแบบ local-first, ระบบวิเคราะห์แบบเรียลไทม์
ยังไม่มีความคิดเห็น