เหตุผลที่สร้าง
- ในบรรดาไลบรารีแคชของ Go ยังไม่มีตัวไหนที่เป็น contention-free อย่างแท้จริง ส่วนใหญ่เป็นเพียงแมปที่มี mutex และนโยบายการไล่ออก
- ทำให้ความเร็วตามไม่ทันแคชในภาษาอื่น ๆ (เช่น Caffeine)
- Ristretto ซึ่งเป็นแคชที่เร็วที่สุดของ Dgraph labs เร็วกว่าคู่แข่งได้สูงสุด 30% (แต่ Otter เร็วกว่ามาก) ทว่า Hit ratio ไม่ดีนัก
- ในแอปพลิเคชันจริง เรื่องนี้อาจเป็นปัญหาได้ เพราะเราไม่อยากให้ชนเพดานด้านประสิทธิภาพของไลบรารีแคช
- ผลลัพธ์คือจึงอยากสร้างแคชที่เร็วที่สุดและใช้งานง่ายที่สุด
คุณสมบัติหลัก
- API ที่เรียบง่าย: ตั้งค่าพารามิเตอร์ที่ต้องการใน Builder แล้วใช้งานได้เลย
- การตั้งค่าอัตโนมัติ: กำหนดค่าอัตโนมัติตามความสามารถด้านการประมวลผลแบบขนานของแอปพลิเคชัน
- Generics: ใช้ชนิดข้อมูลใด ๆ ที่เปรียบเทียบได้อย่างปลอดภัยเป็นคีย์ได้ และใช้ชนิดข้อมูลใด ๆ เป็นค่าได้
- TTL: ค่าที่หมดอายุจะถูกลบออกจากแคชโดยอัตโนมัติ
- การไล่ออกตามต้นทุน: รองรับการไล่ออกโดยอิงจากต้นทุนของแต่ละรายการ
- Throughput ยอดเยี่ยม: เป็นไลบรารีแคชที่เร็วที่สุดในตอนนี้ โดยทิ้งห่างคู่แข่งรายอื่นอย่างชัดเจน (Theine, Ristretto, Bigcache, Fastcache)
- Hit ratio ยอดเยี่ยม: ใช้อัลกอริทึม S3-FIFO ใหม่ที่แสดงผลลัพธ์ได้ดีเยี่ยม
1 ความคิดเห็น
ชื่อนี่คุ้น ๆ เลยลองค้นดู ก็เจออันนี้ครับ
Otter: โมเดลมัลติโหมดที่สามารถปรับแต่งคำสั่งภายในคอนเท็กซ์ได้
จากนี้ไปคงไม่ควรสร้างอะไรด้วยชื่อสัตว์แล้วล่ะ ถ้าไม่ใช่ชื่อที่หายากมาก ๆ ส่วนใหญ่มีคนใช้ไปหมดแล้วครับ
ความเห็นวิเคราะห์จาก AI ก็น่าสนใจดี เลยขอเพิ่มไว้ด้วยครับ
ความเห็นของ GN⁺