# فريق يشغّل Postgres عبر QUIC بدل TCP فينخفض متوسط الاستجابة من 7,088 إلى 246 ميلي ثانية

> **المغزى:** سقف عدد الاستعلامات في كثير من التطبيقات لا تحدده قوة قاعدة البيانات، بل زمن الذهاب والإياب في الشبكة، وترقية الخادم لا تغير هذا الرقم.

- المصدر: المغزى (https://almaghza.com/a/2026-09-30-postgres-over-quic-pgcat/)
- التاريخ: 19 ربيع الآخر - 30 سبتمبر 2026 (2026-09-30)
- القسم: برمجيات
- الوسوم: PostgreSQL، تحسين الأداء، قواعد البيانات، المصادر المفتوحة

نشر فريق Lupyd تجربة شغّل فيها قاعدة بيانات Postgres عبر بروتوكول QUIC بدل TCP، مع قاعدة البيانات نفسها والاستعلامات نفسها. والنتيجة أن متوسط زمن الاستجابة انخفض من 7,088 ميلي ثانية إلى 246.

ولفهم السبب يكفي حساب بسيط. إذا كان زمن الذهاب والإياب بين التطبيق وقاعدة البيانات 30 ميلي ثانية، والاستعلام نفسه يستغرق نصف ميلي ثانية، فإن الاتصال الواحد يخدم 33 استعلامًا في الثانية على الأكثر، لأنه ينتظر الرد قبل إرسال الاستعلام التالي. وعشرة اتصالات تعني سقفًا عند نحو 333 استعلامًا في الثانية.

والطلبات التي تتجاوز هذا السقف لا تفشل، وهذا أسوأ. فهي تقف في طابور داخل ذاكرة التطبيق، حيث لا تظهر في أي لوحة مراقبة.

ولحل ذلك عدّل الفريق PgCat، وهو Postgres pooler مفتوح المصدر برخصة MIT، ليقبل QUIC، مستخدمًا مكتبة s2n-quic من AWS مع الدالة connect_raw() من مكتبة tokio-postgres. والفكرة أن فتح stream جديد في QUIC لا يحتاج إلى file descriptor أو socket جديد من نظام التشغيل، بل هو مجرد رقم داخل اتصال مشفّر مفتوح أصلًا.

وعند أعلى حمل في الاختبار، حقق TCP مع 500 اتصال 4,749 استعلامًا في الثانية، مع 36,041 استعلامًا عالقًا في الطابور. أما QUIC مع 50 اتصالًا و40 stream فحقق 9,718 استعلامًا في الثانية، مع 40 استعلامًا فقط في الطابور. وانخفضت ذاكرة العميل من 474 ميجابايت إلى 91.

وتعني هذه الأرقام أن سقف أي تطبيق يُحسب من زمن الشبكة لا من قوة قاعدة البيانات. فحين يكون الخادم في منطقة وقاعدة البيانات في منطقة أخرى، قد لا تكون ترقية الـ instance هي ما يرفع السقف. ويمكن لأي فريق أن يقدّر سقفه بقسمة عدد الاتصالات على زمن الذهاب والإياب بالثواني.

## المصادر

- [المقال الأصلي بالكود وجدول الـ benchmark](https://blogs.lupyd.com/blog/postgres-with-quic/)
- [PgCat، الـ pooler الذي جرى تعديله (رخصة MIT)](https://github.com/postgresml/pgcat)
- [s2n-quic من AWS، مكتبة QUIC المستخدمة](https://github.com/aws/s2n-quic)
