في العالم المثالي للمهندس، تكون البنية المعمارية دائمًا جميلة. في العالم الواقعي للأنظمة ذات النطاق الواسع، عليك تقديم تنازلات. إحدى المشكلات الأساسية التي يجب على المهندس التفكير فيها في البداية هي المفاضلة الشرسة بين سرعة الكتابة وسرعة القراءة.
عادةً، تضحي بإحداهما من أجل الأخرى. لكن في حالتنا، عند العمل مع بيتابايت من البيانات في AWS، لم تؤثر هذه المفاضلة على سرعتنا - بل أثرت على المحفظة.
قمنا ببناء نظام يكتب البيانات بشكل مثالي، ولكن في كل مرة يقرأ فيها من الأرشيف، كان يستنزف الميزانية بأكثر الطرق إيلامًا التي يمكن تخيلها. بعد كل شيء، قراءة بيتابايت من AWS تكلف المال لنقل البيانات وعدد الطلبات واسترجاع فئة التخزين... الكثير من المال!
هذه قصة كيف قمنا بتحسينه لجعله أكثر كفاءة وفعالية من حيث التكلفة!
قصة حقيقية: قبل بضعة أشهر، أراد أحد مهندسي الحلول لدينا سحب عينة تصدير من موقع ويب نادر ومنخفض الحركة لعرض المنتج لعميل محتمل. بسبب خطأ في واجهة برمجة تطبيقات جديدة، لم يتم تطبيق حد الأمان على عدد الملفات.
نظرًا لأن بيانات هذا الموقع "النادر" كانت مبعثرة عبر ملايين الأرشيفات إلى جانب مواقع عالية الحركة، حاول النظام استعادة ما يقرب من نصف التخزين التاريخي بأكمله للعثور على تلك الصفحات القليلة.
انتهى هذا الخطأ الصادق بتكلفتنا ما يقرب من 100,000 دولار في رسوم AWS!
الآن، قمت بإصلاح خطأ واجهة برمجة التطبيقات على الفور (وأضفت حدودًا صارمة)، لكن نقطة الضعف المعمارية ظلت قائمة. كانت قنبلة موقوتة...
دعني أخبرك قصة بنية أرشيف الويب من Bright Data: كيف قدت النظام إلى فخ التخزين "الرخيص" وكيف خرجت منه باستخدام خط أنابيب إعادة الترتيب.
عندما بدأت العمل على أرشيف الويب، كان النظام يستوعب بالفعل تدفقًا هائلاً من البيانات: ملايين الطلبات في الدقيقة، وعشرات التيرابايت يوميًا. تم بناء البنية الأساسية بهدف أساسي: التقاط كل شيء دون فقدان البيانات.
اعتمد على الاستراتيجية الأكثر متانة لأنظمة الإنتاجية العالية: سجل الإضافة فقط.
بالنسبة لمرحلة الاستيعاب، كان هذا التصميم مثاليًا. تخزين البيانات في Deep Archive يكلف بنسات، وإنتاجية الكتابة غير محدودة تقريبًا.
عملت البنية المعمارية بشكل مثالي للكتابة... حتى جاء العملاء يطلبون البيانات التاريخية. هنا واجهت تناقضًا أساسيًا:
cnn.com، وgoogle.com، وshop.xyz.cnn.com للعام الماضي."هنا يكمن الخطأ الذي ألهم هذه المقالة. مثل العديد من المهندسين، اعتدت على التفكير في زمن الاستجابة، والعمليات في الثانية، والإنتاجية. لكنني أغفلت نموذج فواتير AWS Glacier.
اعتقدت: "حسنًا، استرجاع بضعة آلاف من الأرشيفات بطيء (48 ساعة)، لكنه ليس مكلفًا للغاية."
الواقع: لا تفرض AWS رسومًا على مكالمة واجهة برمجة التطبيقات فحسب، بل أيضًا على حجم البيانات المستعادة ($ لكل جيجابايت مسترجع).
تخيل أن عميلاً يطلب 1,000 صفحة من مجال واحد. نظرًا لأن منطق الكتابة كان زمنيًا، يمكن أن تنتشر هذه الصفحات عبر 1,000 أرشيف TAR مختلف.
لإعطاء العميل هذه البيانات المفيدة البالغة 50 ميجابايت، تحدث كارثة:
كنا ندفع لاستعادة تيرابايت من القمامة فقط لاستخراج حبات من الذهب. كانت مشكلة موقع البيانات كلاسيكية تحولت إلى ثقب مالي أسود.
لم أستطع تغيير طريقة الاستيعاب بسرعة - التدفق الوارد متوازٍ وضخم للغاية للفرز "أثناء التنفيذ" (على الرغم من أنني أعمل على ذلك)، وكنت بحاجة إلى حل يعمل أيضًا مع البيانات المؤرشفة بالفعل.
لذلك، صممت خط أنابيب إعادة الترتيب، وهي عملية خلفية "تزيل تجزئة" الأرشيف.
هذه عملية ETL (استخراج، تحويل، تحميل) غير متزامنة، مع عدة مكونات أساسية حاسمة:
الاختيار: لا معنى لفرز البيانات التي لا يطلبها العملاء. وبالتالي، أوجه جميع البيانات الجديدة إلى خط الأنابيب، وكذلك البيانات التي طلب العملاء تحديدًا استعادتها. ندفع أكثر من اللازم للاسترداد في المرة الأولى، لكن هذا لا يحدث مرة ثانية.
\
التبديل (التجميع): يقوم عدة عمال بتنزيل الملفات غير المرتبة بالتوازي وتنظيم المخازن المؤقتة حسب المجال. نظرًا لأن النظام غير متزامن، فأنا لا أقلق بشأن تحميل التدفق الوارد على الذاكرة. يتعامل العمال مع الحمل بوتيرتهم الخاصة.
\
إعادة الكتابة: أكتب الملفات المرتبة مرة أخرى إلى S3 تحت بادئة جديدة (للتمييز بين الملفات المرتبة والملفات الخام).
2024/05/05/random_id_ts.tar → [cnn, google, zara, cnn]2024/05/05/cnn/random_id_ts.tar → [cnn, cnn, cnn...] MERGE INTO أو UPDATE مكلف للغاية.غير هذا التغيير اقتصاديات المنتج بشكل جذري:
cnn.com، يستعيد النظام فقط البيانات حيث يوجد cnn.com.تقوم Bright Data بتوسيع نطاق أرشيف الويب أكثر. إذا كنت تستمتع بـ:
فأنا أود التحدث معك.
نحن نوظف مهندسي Node.js أقوياء للمساعدة في بناء الجيل التالي من أرشيف الويب. وجود خبرة في هندسة البيانات و ETL يعد ميزة كبيرة. لا تتردد في إرسال سيرتك الذاتية إلى [email protected].
المزيد من التحديثات قادمة مع استمراري في توسيع نطاق الأرشيف - ومع استمراري في إيجاد طرق جديدة ومبتكرة لكسره!
\


