أكثر من ٥٠٠ مليون تغريدة يوميًا ، وأكثر من ١٢ الف عملية كتابة بالثانية في وقت الذروة، ومع ذلك يضمن ل

أكثر من ٥٠٠ مليون تغريدة يوميًا ، وأكثر من ١٢ الف عملية كتابة بالثانية في وقت الذروة، ومع ذلك يضمن لك تويتر ان التغريدة تصل لمتابعينك خلال ٥ ثواني ?

أكثر من ٥٠٠ مليون تغريدة يوميًا ، وأكثر من ١٢ الف عملية كتابة بالثانية في وقت الذروة، ومع ذلك يضمن لك تويتر ان التغريدة تصل لمتابعينك خلال ٥ ثواني ?

بالتغريدات الجاية بنستعرض طريقتين استخدمها تويتر بحيث يتحمل هذا الـLoad? https://t.co/8TR7RbLMSf

الطريقة الأولى: ??

الطريقة الأولى هي الابسط، اذا شخص غرد بتغريدة ندخل التغريدة هذي بـtable تحتوي على كل التغريدات?

واذا شخص طلب الـTimeline راح نجيب كل الحسابات اللي يتابعها ونطلع منها التغريدات الحديدة ونسوي لها sort بناءً على وقت التغريدة?.

شكل الQuery المحتمل: https://t.co/J9a8854WA7

الطريقة الثانية: ✌?

راح نسوي Timeline cache ? لكل حساب، واذا شخص غرد بتغريدة راح نجيب كل الحسابات اللي تتابع هذا الشخص وندخل التغريدة بالcache الخاص بكل حساب.

الان اذا شخص طلب الtimeline راح نقدر نخدمه بسرعه لأن النتائج حسبناها من أول ??

في البداية كان تويتر يستخدم الطريقة الأولى، لكن بعدها بفترة اضطر للتحويل للطريقة الثانية؛ لأن متوسط عدد التغريدات اليومية أقل بكثير من طلبات الـ timeline (الـ writes اقل بكثير من الـ reads) ?

فالأفضل اننا نسوي الcomputation وقت الwrite بحيث تكون جاهزة وقت الread ?? https://t.co/CIvTbZ4Ot5

لكن مشكلة الطريقة الثانية هي بالحسابات اللي يتابعها ملايين الاشخاص?.

فمثلًا حساب @BarackObama عنده 120 مليون متابع، يعني ان تغريدة وحدة راح تسبب ب125 مليون عملية كتابة ولازم كلها تتم خلال ٥ ثواني!?


Komentar