- โอเพนซอร์สประสิทธิภาพสูงที่เขียนด้วย Rust สำหรับใช้แทน Kafka
- แพลตฟอร์มสตรีมมิงข้อความแบบกระจายศูนย์ ที่สร้างบน เอนจินจัดเก็บล็อกประสิทธิภาพสูง มอบการสตรีมที่เสถียรและความสามารถในการสลับผู้นำอัตโนมัติ
- รักษาความสอดคล้องของเมตะดาต้าและรองรับการกู้คืนจากความขัดข้องผ่าน Raft consensus protocol
- ใช้ การแบ่งพาร์ทิชันตามเซกเมนต์ เพื่อกระจายโหลดโดยอัตโนมัติ และหมุนภาวะผู้นำแบบ round-robin
- ความสามารถหลัก
- แบ่งท็อปปิกด้วย การชาร์ดระดับเซกเมนต์ และให้โหนดผู้นำของแต่ละเซกเมนต์รับผิดชอบการเขียน
- ใช้ lease-based write fencing เพื่อให้มีผู้นำเพียงรายเดียวที่เขียนได้ ป้องกัน split-brain
- automatic rollover จะเสนอการเปลี่ยนเมตะดาต้าและสลับผู้นำเมื่อขนาดเซกเมนต์เกินกำหนด
- ฟีเจอร์ Sealed Segment Reads ช่วยให้อ่านข้อมูลย้อนหลังได้โดยตรงจากรีพลิกา
- I/O ประสิทธิภาพสูงบน io_uring ช่วยให้ได้ throughput สูงในสภาพแวดล้อม Linux
- โปรโตคอลไคลเอนต์
- ใช้ โปรโตคอลข้อความแบบ length-prefixed บน TCP
- รองรับการสร้างท็อปปิก การส่งและรับข้อความ และการตรวจสอบสถานะผ่านคำสั่ง
REGISTER, PUT, GET, STATE, METRICS
- โครงสร้างคำสั่งเรียบง่าย ทำให้ เชื่อมต่อกับโหนดใดก็ได้ และมีการส่งต่ออัตโนมัติ
- ลักษณะด้านประสิทธิภาพ
- throughput การเขียน: โครงสร้าง single writer ต่อเซกเมนต์ช่วยรักษาประสิทธิภาพได้อย่างเสถียร
- throughput การอ่าน: ขยายได้ตามจำนวนรีพลิกา
- latency: โดยเฉลี่ยอยู่ที่ระดับ 1~2 RTT
- ลด overhead ของ consensus ให้ต่ำที่สุด: ใช้ Raft กับเมตะดาต้าเท่านั้น ไม่ใช้กับเส้นทางข้อมูล
- การเปรียบเทียบประสิทธิภาพ
- มี throughput การเขียนและแบนด์วิดท์สูงกว่า Kafka, RocksDB
- เมื่อปิด fsync ทำได้มากกว่า 1.2 ล้านรายการต่อวินาที และแม้เปิดใช้งานก็ยังคงรักษาประสิทธิภาพที่เสถียรในระดับใกล้เคียงกัน
- MIT License
ยังไม่มีความคิดเห็น