CockroachDB — sobiq Google muhandislari tomonidan 2015-yilda taqdim etilgan, taqsimlangan SQL ma’lumotlar bazasi. Uning nomi — “tarakan” (cockroach) — hazil tariqasida tanlangan, chunki tarakanlar hatto qiyin sharoitlarda ham omon qolishi bilan mashhur, bu esa ma’lumotlar bazasining tugun ishdan chiqishiga bardoshlilik falsafasini ifodalaydi.
Google Spanner’dan ilhomlanishi
CockroachDB’ning asoschilari avval Google’da ishlagan va Google’ning ichki, globallashtirilgan Spanner ma’lumotlar bazasi tizimidan ilhomlangan. Ular Spanner’ning g’oyalarini — global miqyosda ishlaydigan, kuchli izchillikka ega SQL ma’lumotlar bazasi — ochiq manbali, istalgan tashkilot foydalanishi mumkin bo’lgan mahsulotga aylantirishga qaror qilishdi.
Nomi va yashovchanlik falsafasi
CockroachDB’ning dizayn falsafasi shundaki, klasterdagi bir yoki bir nechta serverning ishdan chiqishi butun tizimning ishlashiga to’sqinlik qilmasligi kerak. Ma’lumot avtomatik ravishda bir nechta serverda nusxalanadi, shu sababli bitta yoki hatto bir nechta serverning yo’qolishi ma’lumotni yo’qotmaydi yoki xizmatni to’xtatmaydi.
Taqsimlangan SQL modeli
An’anaviy relyatsion ma’lumotlar bazalari odatda bitta serverda ishlashga mo’ljallangan bo’lsa, CockroachDB to’liq SQL interfeysini taqdim etgan holda, ma’lumotni ko’plab serverlar orasida avtomatik taqsimlaydi. Bu yondashuv “NewSQL” deb ataladigan yangi kategoriyaga kiradi — u NoSQL’ning miqyoslanuvchanligini an’anaviy SQL‘ning izchilligi bilan birlashtiradi.
Avtomatik replikatsiya va bo’lish
CockroachDB ma’lumotlarni avtomatik ravishda “range” deb ataladigan kichik bo’laklarga ajratadi va har bir bo’lakni bir nechta serverda nusxalaydi, Raft konsensus algoritmi orqali barcha nusxalar orasida izchillikni ta’minlaydi. Bu jarayon dasturchidan hech qanday qo’lda sozlashni talab qilmaydi.
Qo’llanilish sohalari
CockroachDB moliyaviy xizmatlar, global miqyosda ishlaydigan elektron tijorat platformalari va yuqori mavjudlik talab qiladigan tizimlarda qo’llaniladi, ayniqsa geografik jihatdan tarqalgan foydalanuvchilarga past kechikish bilan xizmat ko’rsatish zarur bo’lganda.
Bog’liq tushunchalar
Taqsimlangan ma’lumotlar bazasi, Google Spanner, SQL, Sharding, Replikatsiya, NewSQL, Raft