Bosh sahifa Wiki Block size

Block size

Block size — ma’lumotni saqlash, uzatish yoki qayta ishlashda bitta birlik sifatida ko‘riladigan byte lar miqdoridir. Atama filesystem, disk, database, tarmoq protokoli, shifrlash va backup tizimida turli ma’noga ega. Shu sabab “block size 4 KB” deyilganda qaysi qatlamning bloki ekanini aniqlash kerak.

Saqlash qatlamlari

Fizik yoki virtual disk sektorlar bilan ishlaydi; zamonaviy qurilmada logical va physical sector o‘lchami farq qilishi mumkin. Filesystem block yoki allocation unit faylga joy ajratishning asosiy birligidir. Database page esa jadval va indeks yozuvlarini cache hamda disk o‘rtasida ko‘chiradigan ichki birlik bo‘lishi mumkin.

Bir fayl bir byte bo‘lsa ham filesystem kamida bitta allocation block egallashi mumkin. Ko‘p kichik faylda katta block internal fragmentationni oshiradi. Juda kichik block esa katta fayl uchun ko‘proq metadata, pointer va I/O operatsiyasi talab qiladi.

Alignment

Filesystem block, partition va storage physical sector chegaralari mos bo‘lmasa, bitta mantiqiy write ikki fizik blokni o‘qib-o‘zgartirib-yozishni talab qilishi mumkin. Bu write amplification va kechikishni oshiradi. Virtual disk, RAID stripe va database page alignmenti bir necha qatlam bo‘ylab tekshiriladi.

Direct I/O ko‘pincha buffer manzili, offset va uzunlik uchun alignment talab qiladi. Noto‘g‘ri qiymat syscall xatosi yoki buffered fallback keltirishi mumkin. Ilova faqat hujjatdagi nominal block sizega emas, runtime API talabiga tayanadi.

I/O unumdorligi

Sequential katta fayl uzatishda yirik blok syscall sonini kamaytirib throughputni oshirishi mumkin. Random kichik o‘qishda esa katta blok keraksiz ma’lumotni olib keladi va cache ni band qiladi. Optimal qiymat workload, queue depth, latency va qurilma xususiyatiga bog‘liq.

Benchmark real access pattern bilan o‘tkaziladi. Faqat maksimal MB/s transactional database uchun muhim p99 latency va IOPSni yashirishi mumkin. Warm cache va cold cache natijalari alohida o‘lchanadi.

Tarmoq va file transfer

Transfer dasturi faylni application bloklariga bo‘lib o‘qiydi. Bu blok TCP segmenti yoki Ethernet frame bilan aynan teng emas; kernel oqimni o‘zicha segmentlaydi. Juda kichik buffer ko‘p syscall, juda katta buffer esa xotira va retry xarajatini oshiradi.

Parallel multipart uploadda part size minimal API talabiga va umumiy part soni limitiga mos bo‘ladi. Katta part failureda ko‘proq byte qayta yuboradi, kichik part esa request overheadni oshiradi. Resume metadata har blok yoki partning offset va checksumini saqlashi mumkin.

Kriptografik blok

Block cipher AES kabi algoritmda qat’iy o‘lchamli blok ustida ishlaydi; AES block size 128 bitdir va kalit uzunligidan mustaqil. Fayl tizimidagi 4 KB blok bilan bu tushuncha boshqa. Mode of operation katta xabarni cipher bloklariga qanday ajratish va autentifikatsiya qilishni belgilaydi.

Padding ayrim mode larda oxirgi to‘liq bo‘lmagan blokni to‘ldiradi. Streamga o‘xshash mode padding talab qilmasligi mumkin. Kriptografik block size ni unumdorlik uchun ixtiyoriy almashtirib bo‘lmaydi; u algoritm standartining qismidir.

RAID va object storage

RAID stripe size ma’lumotning disklar bo‘ylab qanday bo‘linishini bildiradi. Full-stripe write parity read-modify-write xarajatini kamaytirishi mumkin. Application blocki stripe chegarasiga mos kelmasa ham controller cache va workload natijaga ta’sir qiladi. Object storage esa obyektni ichki chunklarga ajratishi mumkin, lekin clientga oddiy byte oqimi ko‘rsatadi.

Siqish va deduplikatsiya

Compression block kattaligi siqish nisbati va random accessni muvozanatlashtiradi. Katta blok ko‘proq takrorni topadi, ammo kichik qismni o‘qish uchun ko‘p ma’lumot decompress qilinadi. Dedupe chunking fixed yoki content-defined bo‘lishi mumkin; ikkinchisi fayl boshiga byte qo‘shilganda qolgan chegaralarning siljishini kamaytiradi.

Bog‘liq tushunchalar

Filesystem, Sector, Database page, IOPS, Buffer, Alignment, Block cipher