به نظرتون اینستاگرام یا توییتر چطور به این سرعت تعداد لایکها یا بازدیدهای یک پست رو نمایش میدن؟
آیا در این حجم داده یک کوئری دیتابیسی و cache یا روشهایی مثل distribution کافیه؟
خب Google Analytics چطور میتونه این حجم داده از جنس بازدید یکتا، تعداد کلیک یا... رو محاسبه کنه؟
یک الگوریتم بسیار زیبا وجود داره به اسم
HyperLogLog
که به ما اجازه میده با تقریب بسیار خوبی و فقط با مصرف چند کیلوبایت RAM تعداد المانهای یکتا رو از مجموعه دیتا استخراج کنیم.
این الگوریتم بسیار Memory Efficient هستش و مثلا برای شمردن تعداد لایکهای منحصر به فرد یک پست با ذخیره Hash داده و استفاده از فرمول HyperLogLog در سریعترین زمان ممکن نتیجه رو برای شما محاسبه میکنه.
این موضوع یه چالش سیستم دیزاین جذابه که اگر دوست دارین، بیشتر دربارهاش بدونید، نگاهی به مقاله زیر بندازید.
https://www.geeksforgeeks.org/hyperloglog-algorithm-in-system-design/
- در دوره صفر تا صد گولنگ کلودیگو یک نمونه از این الگوریتم رو پیادهسازی خواهیم کرد.
#tip
#systemdesign
آیا در این حجم داده یک کوئری دیتابیسی و cache یا روشهایی مثل distribution کافیه؟
خب Google Analytics چطور میتونه این حجم داده از جنس بازدید یکتا، تعداد کلیک یا... رو محاسبه کنه؟
یک الگوریتم بسیار زیبا وجود داره به اسم
HyperLogLog
که به ما اجازه میده با تقریب بسیار خوبی و فقط با مصرف چند کیلوبایت RAM تعداد المانهای یکتا رو از مجموعه دیتا استخراج کنیم.
این الگوریتم بسیار Memory Efficient هستش و مثلا برای شمردن تعداد لایکهای منحصر به فرد یک پست با ذخیره Hash داده و استفاده از فرمول HyperLogLog در سریعترین زمان ممکن نتیجه رو برای شما محاسبه میکنه.
این موضوع یه چالش سیستم دیزاین جذابه که اگر دوست دارین، بیشتر دربارهاش بدونید، نگاهی به مقاله زیر بندازید.
https://www.geeksforgeeks.org/hyperloglog-algorithm-in-system-design/
- در دوره صفر تا صد گولنگ کلودیگو یک نمونه از این الگوریتم رو پیادهسازی خواهیم کرد.
#tip
#systemdesign
👍5⚡1🔥1