- DiceDB เป็นฐานข้อมูล in-memory แบบโอเพนซอร์ส ประสิทธิภาพสูง และตอบสนองได้รวดเร็ว
- ใช้งานหลักเป็น แคช และให้ การอัปเดตข้อมูลแบบเรียลไทม์ ผ่าน query subscription
- ปรับแต่งมาสำหรับฮาร์ดแวร์สมัยใหม่ จึงให้ทั้ง throughput สูงและ latency ต่ำ
- ใช้งานง่าย มีอินเทอร์เฟซที่คุ้นเคย และเป็นโอเพนซอร์ส
- เกณฑ์วัดประสิทธิภาพ
- เปรียบเทียบ throughput และค่า latency ของ GET/SET กับฐานข้อมูล in-memory อื่น ๆ บนเครื่อง Hetzner CCX23 (4 vCPU, RAM 16GB)
- throughput (ops/sec): DiceDB 15655, Redis 12267
- GET p50(ms): DiceDB 0.227327, Redis 0.270335
- GET p90(ms): DiceDB 0.337919, Redis 0.329727
- SET p50(ms): DiceDB 0.230399, Redis 0.272383
- SET p90(ms): DiceDB 0.339967, Redis 0.331775
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
โค้ดนี้มีบั๊กอยู่มาก
ExpandIDไม่ได้ล็อก mutex ระดับแพ็กเกจตอนอ่านจากcycleMapNextIDล็อก mutex ระดับแพ็กเกจตอนเขียนลงcycleMapExpandIDและNextIDพร้อมกันมีคำถามบางอย่างเกี่ยวกับการออกแบบหลังจากดูโค้ดเบสของ DiceDB
สงสัยว่ามีประโยคที่อธิบายหรือไม่ว่าเทคโนโลยีนี้จริง ๆ แล้วคืออะไร
ขำดีที่เอาเครื่องมือแห่งความบังเอิญมาตั้งชื่อเป็นเทคโนโลยีจัดเก็บข้อมูล
DiceDB ฟังดูเหมือนชื่อฐานข้อมูลมุกตลกที่คืนค่าผลลัพธ์แบบสุ่ม
ผลเบนช์มาร์กบน 4vCPU และ num_clients=4 ดูไม่ต่างกันมาก
การเปรียบเทียบประสิทธิภาพระหว่าง DiceDB กับ Redis
ไม่เข้าใจว่าทำไมคำขอ GET ถึงใช้เวลา 20ms
อยากรู้ว่ามีใครมีประสบการณ์กับคีย์-แวลูสโตร์โอเพนซอร์สที่ latency ต่ำและ throughput สูงบ้างไหม
อยากรู้เกี่ยวกับ semantics ของการส่ง PubSub
15655 ops ต่อวินาทีบนเครื่อง Hetzner CCX23 ถือว่าช้าสำหรับฐานข้อมูล in-memory
ช้ากว่า Nubmq มาก