مصائد التزامن في Rust: اختناق عداد ذري
2025-06-10
عانت منصة تحليلات البث من Conviva من اختناق في الأداء بسبب عداد ذري يبدو غير ضار في سجل أنواع مشترك عالميًا يستخدم خريطة هاش متزامنة (Flashmap). تحت التزامن العالي، تسببت تحديثات العداد الذري في ارتداد خطوط ذاكرة التخزين المؤقت وتبديل سياق مفرط، مما أدى إلى ارتفاع في زمن الوصول P99. لم يحل استبدال Flashmap بـ Dashmap المشكلة. تم حل المشكلة أخيرًا باستخدام ArcSwap، الذي يستخدم آلية تحديث نسخة القراءة (RCU) لتجنب التنافس على ذاكرة التخزين المؤقت. تُبرز هذه الحالة أهمية اختيار بنية البيانات المناسبة لسيناريوهات التزامن العالي، خاصة في المواقف كثيفة القراءة، حيث تتفوق كفاءة ArcSwap.
اقرأ المزيد
التطوير