GoDasturchi
When One Database Isn't Enough

When One Database Isn't Enough

Bitta baza yetmay qolganda

Kichik qishloq kutubxonasini tasavvur qiling: bitta kutubxonachi, bitta zal, bitta ro'yxat daftari — hamma narsa boshqarilishi OSON. Endi shu kutubxona BUTUN shahar aholisiga xizmat qiladigan markaziy kutubxonaga aylansa-chi? Bitta kutubxonachi endi ULGURA olmaydi (navbat cho'zilib ketadi), bitta zal endi barcha kitobni SIG'DIRA olmaydi, va bitta daftar endi minglab yozuvni tez qidirib bo'lmaydigan holga keladi. Bazangiz ham xuddi shunday o'sadi.

"Learn database/sql" va "Learn GORM" kurslarida siz BITTA bazaga ulanib, so'rov yuborishni o'rgandingiz — bu deyarli barcha kichik va o'rta ilovalar uchun YETARLI. Lekin tizim o'sgani sari, bitta baza uchta asosiy MUAMMOga duch keladi: u qabul qila oladigan so'rovlar SONI (throughput) chegaraga yetadi, saqlay oladigan ma'lumot HAJMI diskga sig'may qoladi, va — eng xavotirlisi — bitta baza SPOF (Single Point of Failure, Reliability and Redundancy darsida ko'rgan) bo'lib qoladi: u o'chsa, BUTUN ilova to'xtaydi.

Bu uchta muammoning har biriga, tizim dizaynida ALOHIDA, lekin bir-biri bilan BOG'LIQ yechim bor: replikatsiya (replication) — bazaning bir nechta NUSXASINI yuritish (SPOF va o'qish yukini hal qiladi), sharding (bo'lish) — ma'lumotni bir nechta bazaga TAQSIMLASH (hajm va yozish yukini hal qiladi), va indekslash (indexing) — mavjud ma'lumot ICHIDA tezroq qidirish (so'rov tezligini hal qiladi). Ushbu kurs davomida ularning har birini, va ular ustiga qo'shiladigan kesh, CDN, yuk taqsimlash kabi qatlamlarni ko'rib chiqamiz.

  • O'qish so'rovlari ko'p, yozish kam bo'lsa → replikatsiya (read replicas) odatda YETARLI
  • Ma'lumot hajmi yoki yozish yuki bitta serverga sig'maydigan bo'lsa → sharding kerak bo'ladi
  • Bir xil so'rovlar QAYTA-QAYTA takrorlansa → kesh, bazaning o'ziga tegmasdan ham katta yengillik beradi

Muhim ogohlantirish: bu vositalarning HAR BIRI murakkablik QO'SHADI (masalan, bir nechta nusxa — Consistency Models darsida ko'rgan "nusxalar bir-biriga qachon mos keladi" savolini tug'diradi). Shuning uchun ularni "ehtiyot chorasi" sifatida OLDINDAN qo'shish emas, balki Back-of-the-Envelope Estimation darsida ko'rgan hisob-kitob ANIQ ko'rsatganda qo'llash kerak — bu, Simplicity vs Flexibility tamoyilining MA'LUMOT qatlamidagi ko'rinishi.

Key Takeaway

Key Takeaway:

Tizim o'sgani sari, bitta baza uch xil muammoga duch keladi: chegaralangan throughput, chegaralangan hajm, va yagona ishdan chiqish nuqtasi. Bu kurs — ularni hal qiluvchi replikatsiya, sharding, indekslash, kesh, CDN va yuk taqsimlash vositalarini, HAR BIRINI qachon qo'llash kerakligi bilan birga o'rgatadi.

NEXT UP

Database Replication: Leader-Follower and Read Replicas

When One Database Isn't Enough

Bitta baza yetmay qolganda

Kichik qishloq kutubxonasini tasavvur qiling: bitta kutubxonachi, bitta zal, bitta ro'yxat daftari — hamma narsa boshqarilishi OSON. Endi shu kutubxona BUTUN shahar aholisiga xizmat qiladigan markaziy kutubxonaga aylansa-chi? Bitta kutubxonachi endi ULGURA olmaydi (navbat cho'zilib ketadi), bitta zal endi barcha kitobni SIG'DIRA olmaydi, va bitta daftar endi minglab yozuvni tez qidirib bo'lmaydigan holga keladi. Bazangiz ham xuddi shunday o'sadi.

"Learn database/sql" va "Learn GORM" kurslarida siz BITTA bazaga ulanib, so'rov yuborishni o'rgandingiz — bu deyarli barcha kichik va o'rta ilovalar uchun YETARLI. Lekin tizim o'sgani sari, bitta baza uchta asosiy MUAMMOga duch keladi: u qabul qila oladigan so'rovlar SONI (throughput) chegaraga yetadi, saqlay oladigan ma'lumot HAJMI diskga sig'may qoladi, va — eng xavotirlisi — bitta baza SPOF (Single Point of Failure, Reliability and Redundancy darsida ko'rgan) bo'lib qoladi: u o'chsa, BUTUN ilova to'xtaydi.

Bu uchta muammoning har biriga, tizim dizaynida ALOHIDA, lekin bir-biri bilan BOG'LIQ yechim bor: replikatsiya (replication) — bazaning bir nechta NUSXASINI yuritish (SPOF va o'qish yukini hal qiladi), sharding (bo'lish) — ma'lumotni bir nechta bazaga TAQSIMLASH (hajm va yozish yukini hal qiladi), va indekslash (indexing) — mavjud ma'lumot ICHIDA tezroq qidirish (so'rov tezligini hal qiladi). Ushbu kurs davomida ularning har birini, va ular ustiga qo'shiladigan kesh, CDN, yuk taqsimlash kabi qatlamlarni ko'rib chiqamiz.

  • O'qish so'rovlari ko'p, yozish kam bo'lsa → replikatsiya (read replicas) odatda YETARLI
  • Ma'lumot hajmi yoki yozish yuki bitta serverga sig'maydigan bo'lsa → sharding kerak bo'ladi
  • Bir xil so'rovlar QAYTA-QAYTA takrorlansa → kesh, bazaning o'ziga tegmasdan ham katta yengillik beradi

Muhim ogohlantirish: bu vositalarning HAR BIRI murakkablik QO'SHADI (masalan, bir nechta nusxa — Consistency Models darsida ko'rgan "nusxalar bir-biriga qachon mos keladi" savolini tug'diradi). Shuning uchun ularni "ehtiyot chorasi" sifatida OLDINDAN qo'shish emas, balki Back-of-the-Envelope Estimation darsida ko'rgan hisob-kitob ANIQ ko'rsatganda qo'llash kerak — bu, Simplicity vs Flexibility tamoyilining MA'LUMOT qatlamidagi ko'rinishi.

Key Takeaway

Key Takeaway:

Tizim o'sgani sari, bitta baza uch xil muammoga duch keladi: chegaralangan throughput, chegaralangan hajm, va yagona ishdan chiqish nuqtasi. Bu kurs — ularni hal qiluvchi replikatsiya, sharding, indekslash, kesh, CDN va yuk taqsimlash vositalarini, HAR BIRINI qachon qo'llash kerakligi bilan birga o'rgatadi.

NEXT UP

Database Replication: Leader-Follower and Read Replicas