• เอนจินซิงก์ประสิทธิภาพสูงที่ทำงานเสมือน 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, ระบบวิเคราะห์แบบเรียลไทม์

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น