Otabek’s I/O
1.65K subscribers
54 photos
3 videos
66 links
Sr. Software Engineer (IC4) @Dropbox | Mentor @qirikki

I write about Backend, Infrastructure, Math, ML/AI, and Computer Science.
Download Telegram
#SystemDesign

Justin Bieber post qo’ygan kuni Instagram serverlari dumalab qolardi. (Celebrity problem)

Instagram 2015 yillarda endi rivojlanib tanilayotgan paytlari edi. Millionlab foydalanivchilarni ma’lumotlari SQL databaseda saqlangan. Ammo nega bitta odamni posti serverni qiynab qo’ygan?

Instagram like’lar sonini sanash uchun quyidagiga o’xshash query ishlatishgan:


SELECT count(*)
FROM db
WHERE postId in user.likedPost


Celebrity’larda like’lar soni ko’p bo’lgani uchun uni xisoblash serverga og’irlik qilardi va buzulardi, cache qilishsa ham.

Uni oldini olish uchun Instagram jamoasi database denormalization qilib chiqishadi. Ya’ni likelar sonini doim xisoblash o’rniga, ushbu ma’lumotni alohida tablega saqlab borishadi va real-time update qilishni to’xtatishadi (eventual consistency).

Bu postdan maqsad: dastur yasadingizmi uni foydalanuvchilarga bering. Ular sizni o’rganishga va o’sishga majburlashadi.

@otabekswe