Bosh sahifa Wiki Partition

Partition

Partition — katta ma’lumotlar to‘plami, jadval, log yoki hisoblash ishini ma’lum qoida bo‘yicha mustaqilroq bo‘laklarga ajratish birligidir. Partitioning saqlashni tugunlar orasida taqsimlash, parallel ishlash, kerakli bo‘limni tanlab o‘qish va ma’lumot umrini boshqarishga yordam beradi. Noto‘g‘ri kalit esa notekis yuk, qimmat shuffle va murakkab qayta balansga olib keladi.

Ajratish usullari

Range partitioning kalit diapazonlarini bo‘ladi: yanvar sanalari bir, fevral boshqasida. Vaqt bo‘yicha so‘rov va eski davrni o‘chirish qulay, ammo yangi yozuvlar faqat oxirgi bo‘limga tushib hot partition yaratishi mumkin. Hash partitioning kalit xeshini bo‘lim soniga moslab, odatda yukni bir tekis tarqatadi; diapazon so‘roviga lokalitet bermaydi.

List partitioning aniq kategoriyalarni, masalan hududlarni bo‘limlarga ajratadi. Composite sxema avval sana bo‘yicha range, keyin tenant bo‘yicha hash ishlatishi mumkin. Round-robin ma’lumotni teng tarqatadi, lekin kalit bo‘yicha qidiruv uchun barcha bo‘limni tekshirtiradi.

Database partitioning

Partitioned table foydalanuvchiga bitta mantiqiy jadvaldek ko‘rinadi. Query predikati partition keyni cheklasa, optimizer partition pruning orqali mos bo‘lmagan bo‘limlarni ochmaydi. Predikat funksiya yoki type cast sabab kalitga bevosita mos kelmasa pruning ishlamasligi mumkin.

Har bo‘lim alohida indeks, statistika va faylga ega bo‘lishi mumkin. Eski vaqt bo‘limini DROP qilish millionlab satrni individual delete qilishdan tezroq. Biroq juda ko‘p partition rejalashtirish, catalog va file descriptor xarajatini oshiradi. Global uniqueness va foreign key ayrim tizimlarda cheklangan yoki qimmat.

Taqsimlangan tizim

Shard — ko‘pincha alohida tugunda joylashtiriladigan partition. Consistent hashing tugun qo‘shilganda barcha kalitni emas, diapazonlarning bir qismini ko‘chirishga yordam beradi. Virtual node yukni maydaroq birliklarda muvozanatlashtiradi. Replikalar partitionning chidamliligini oshiradi, ammo leader va quorum boshqaruvini talab qiladi.

Kafka logida topic partitionlarga bo‘linadi. Har partition ichida offset tartibi mavjud, lekin barcha partitionlar bo‘yicha yagona global tartib yo‘q. Bir key uchun hodisalar ayni partitionga yuborilsa tartib saqlanadi. Consumer groupda bitta partitionni bir vaqtda odatda bitta consumer o‘qiydi, shuning uchun partition soni parallelizm chegarasini belgilaydi.

Skew va qayta balans

Mashhur mijoz yoki null kalit barcha trafikni bitta bo‘limga to‘plashi mumkin. Monitoring partition hajmi, request rate, queue va worker vaqtini solishtiradi. Salting hot keyni bir nechta kalitga yoyadi, lekin keyinchalik natijani birlashtirishni talab qiladi. Adaptive partition split katta diapazonni mayda bo‘laklarga ajratadi.

Rebalancing ma’lumot ko‘chiradi va tarmoq hamda diskni band qiladi. Jarayon throttle qilinadi, nusxa yetarli bo‘lmaguncha eski joy o‘chirilmaydi. Partition kaliti boshidan biznes access pattern, cardinality, o‘sish va data localityni hisobga olib tanlanadi.

Partition almashish

Warehouse yuklashda yangi data staging jadvalida tekshirilib, tayyor bo‘lgach maqsad partition bilan metadata amali orqali almashtirilishi mumkin. Reader yarim batchni ko‘rmaydi, rollback esa eski partitionni qaytaradi. Biroq source va target schema, constraint hamda storage parametrlari mos bo‘lishi kerak. Exchange operatsiyasining atomikligi database hujjatiga bog‘liq.

Network partitiondan farqi

Data partition ma’lumotni bo‘lish, network partition esa tugunlar orasida aloqa uzilishi ma’nosini beradi. “Partition tolerance” ikkinchi tushunchaga tegishli. Bir xil atamani aralashtirish capacity dizayni bilan consistency muammosini noto‘g‘ri talqin qilishga olib keladi.

Partition evolyutsiyasi

Vaqt o‘tishi bilan yangi hudud yoki tenant paydo bo‘lsa list qoidasi yangilanadi. Default partition vaqtincha noma’lum qiymatni qabul qilishi mumkin, ammo u doimiy chiqindixonaga aylanmasligi uchun alert va qayta joylashtirish jarayoni bo‘ladi.

Bog‘liq tushunchalar

Sharding, Partition key, Partition pruning, Consistent hashing, Replication, Kafka partition, Data skew