9 คะแนน โดย xguru 2026-04-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ติดตั้งด้วยไฟล์ SQL เพียงไฟล์เดียว และทำงาน (tick) ด้วย pg_cron เท่านั้น
  • เป็น คิวข้อความที่ฝังอยู่ใน Postgres ซึ่งนำ สถาปัตยกรรม PgQ จากยุค Skype มาสร้างใหม่ด้วย PL/pgSQL ล้วน ๆ จึงใช้งานได้บน managed Postgres ทันทีโดยไม่ต้องมี C extension หรือ external daemon
  • แก้ปัญหาเรื้อรังของคิวแบบ SKIP LOCKED อย่าง การสะสมของ dead tuple และภาระของ VACUUM ได้ตั้งแต่ต้นทางด้วยการทำ batch แบบอิง snapshot + การหมุนตารางด้วย TRUNCATE ทำให้รันต่อเนื่องหลายเดือนก็ยังไม่เกิด performance degradation
  • โครงสร้างแบบ shared event log + เคอร์เซอร์อิสระต่อคอนซูเมอร์ คล้าย Kafka topic จึงรองรับ fan-out แบบเนทีฟ — ผู้สมัครรับหลายรายสามารถรับทุกอีเวนต์ได้อย่างอิสระโดยไม่ต้องทำสำเนาข้อมูล
  • latency ในการส่งต่อแบบ end-to-end อยู่ที่ประมาณ ~1-2 วินาที ในค่าตั้งต้น (ช่วง tick + ช่วง poll) ส่วนการเรียก send/receive/ack แต่ละครั้งอยู่ในระดับ ไมโครวินาที
  • จากเบนช์มาร์กเบื้องต้น การ insert ด้วย PL/pgSQL ทำได้ประมาณ ~86k ev/s, การอ่านของคอนซูเมอร์อยู่ที่ ~2.4M ev/s, และในการทดสอบต่อเนื่อง 30 นาทีมี dead tuple เพิ่มขึ้นเป็นศูนย์
  • ใช้ SQL API เป็นหลัก เช่น pgque.send(), pgque.receive(), pgque.ack() จึงทำงานได้กับ Postgres driver ทุกตัว ไม่ว่าจะเป็น Python, Go, TypeScript ฯลฯ
  • เข้ากันได้กับผู้ให้บริการ managed Postgres รายหลักทั้งหมด เช่น RDS, Aurora, Cloud SQL, AlloyDB, Supabase, Neon โดยไม่ต้อง build เพิ่มหรือขอการอนุมัติจากผู้ให้บริการ
  • มี การแยกสิทธิ์ ในตัวตาม 3 บทบาท (pgque_reader, pgque_writer, pgque_admin) จึงไม่ต้องให้ superuser กับผู้ใช้ของแอปพลิเคชัน
  • แม้ตัว PgQ จะผ่านการใช้งานจริงใน production ที่ระดับผู้ใช้หลายร้อยล้านคนของ Skype มานานกว่า 10 ปี แต่ PgQue ในฐานะโปรดักต์ยังอยู่ในช่วงเริ่มต้น (v0.1)
  • ไลเซนส์ Apache-2.0

1 ความคิดเห็น

 
kaydash 2026-04-30

เป็นฐานข้อมูลแบบ all-in-one ของจริง