CloudyGo
212 subscribers
8 photos
1 video
1 file
41 links
Software Engineering & Development Best Practices, Especially in Golang!


https://cloudygo.ir

@rezakhademix
Download Telegram
به نظرتون اینستاگرام یا توییتر چطور به ‌این سرعت تعداد لایک‌ها یا بازدیدهای یک پست رو نمایش میدن؟

آیا در این حجم داده یک کوئری دیتابیسی و cache یا روشهایی مثل distribution کافیه؟
خب Google Analytics‌‌ چطور می‌تونه این حجم داده از جنس بازدید یکتا، تعداد کلیک یا... رو محاسبه کنه؟

یک الگوریتم بسیار زیبا وجود داره به اسم
HyperLogLog
که به ما اجازه میده با تقریب بسیار خوبی و فقط با مصرف چند کیلوبایت RAM تعداد المان‌های یکتا رو از مجموعه دیتا استخراج کنیم.

این الگوریتم بسیار Memory Efficient هستش و مثلا برای شمردن تعداد لایک‌های منحصر به فرد یک پست با ذخیره Hash داده و استفاده از فرمول HyperLogLog در سریع‌ترین زمان ممکن نتیجه رو برای شما محاسبه می‌کنه.

این موضوع یه چالش سیستم دیزاین جذابه که اگر دوست دارین، بیشتر درباره‌اش بدونید، نگاهی به مقاله زیر بندازید.

https://www.geeksforgeeks.org/hyperloglog-algorithm-in-system-design/


- در دوره صفر تا صد گولنگ کلودی‌گو یک نمونه از این الگوریتم رو پیاده‌سازی خواهیم کرد.

#tip
#systemdesign
👍51🔥1