• แนะนำให้ใช้ฐานข้อมูลเดียวกัน (Postgres) สำหรับทั้งข้อมูลของแอปพลิเคชันและคิวงาน เพื่อลดการพึ่งพาให้น้อยที่สุด
  • สามารถนำงานเข้าไปรอในคิวแบบทรานแซกชันพร้อมกับการเปลี่ยนแปลงฐานข้อมูลอื่น ๆ ได้ จึงช่วยหลีกเลี่ยงปัญหาทั้งกลุ่มที่เกิดขึ้นในระบบแบบกระจาย
  • Transactional enqueueing: งานจะถูกนำเข้าคิวเมื่อทรานแซกชัน commit, จะถูกลบออกเมื่อทรานแซกชัน rollback และรับประกันว่าจะมองไม่เห็นงานจนกว่าจะมีการ commit
  • ใช้ความสามารถ NOTIFY ของ Postgres เพื่อให้คิวงานสามารถปลุก worker และเริ่มงานได้ทันทีที่งานพร้อม ทำให้ลดเวลาแฝงเฉลี่ยก่อนเริ่มงานลงเหลือระดับมิลลิวินาที
  • เพิ่มประสิทธิภาพด้วยการใช้ binary protocol ของ Postgres และลดจำนวนรอบการสื่อสารกับฐานข้อมูลให้น้อยที่สุด
    • Bulk Job Insert ทำได้อย่างมีประสิทธิภาพด้วย COPY FROM

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

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