#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:
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
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
July 3, 2024