Tumbling Window — vaqt o‘qini bir-birini qoplamaydigan, teng uzunlikdagi ketma-ket oynalarga ajratadigan stream window. U cache, distributed snapshot yoki stream-processing tizimlaridagi muayyan data va vaqt semantikasini ifodalaydi. Aniq kafolatlar platforma, protocol hamda konfiguratsiyaga bog‘liq; termin nomi barcha implementatsiyada bir xil xulqni anglatmaydi.
Asosiy model
Har event timestampiga ko‘ra aynan bitta oynaga tushadi. Masalan besh daqiqalik oynalar 10:00–10:05, 10:05–10:10 tarzida ishlaydi. Window yopilganda count yoki sum chiqariladi.
Tumbling Window alohida feature emas, source, storage, tarmoq va consumer xulqi bilan birga ishlaydi. Request qabul qilinishi, state durable bo‘lishi va natijaning tashqi tizimda ko‘rinishi turli nuqtalar bo‘lishi mumkin. Shu chegaralar hujjatlashtirilsa retry va recoverydagi noaniqlik kamayadi.
Ishlash oqimi
Sliding windowlar qoplanadi va event bir nechta oynaga kirishi mumkin. Tumbling window davriy hisobotga sodda, ammo boundary yaqinidagi bog‘liq eventlarni ajratishi mumkin.
Tumbling Window uchun vaqt va identity scope’i aniq yoziladi. Cache key, stream partition, event timestamp yoki snapshot ID boshqa tenant va versiyadan ajratiladi. Bir xil nomlangan qiymatning turli namespace’da boshqa semantikaga ega bo‘lishi mumkinligi hisobga olinadi.
Muhim farqlar
Timezone, alignment, watermark va allowed lateness belgilanadi. Late event yopilgan oynani update qilsa downstream upsert yoki retractionni tushunishi kerak.
Tumbling Window data retention siyosatiga bog‘liq. TTL, tombstone, offset yoki deduplication metadata erta o‘chirilsa eski state qayta paydo bo‘lishi mumkin; cheksiz saqlansa storage ortadi. Tozalash nuqtasi consumer progress va replica holati bilan asoslanadi.
Tumbling Window dizaynida correctness, freshness, latency va resource sarfi birga tanlanadi. Past latency uchun cache yoki early firing ishlatilsa stale yoki preliminary natija ehtimoli paydo bo‘ladi. Qat’iyroq ordering va completeness ko‘proq buffer, coordination yoki kutish vaqtini talab qiladi.
Amaliy tekshiruv
Tumbling Window rollouti kichik qamrovda boshlanadi. Error rate, tail latency, backend load va data completeness avvalgi versiya bilan taqqoslanadi. Rollback binarydan tashqari cache namespace, checkpoint format va schema o‘zgarishini ham hisobga oladi.
Tumbling Windowga oid capacity reja failure domainni hisobga oladi. Bitta broker, cache shard yoki processor yo‘qolganda qolgan capacity client trafik bilan birga rebuild va replay yukini ko‘tarishi kerak. Backpressure bashorat qilinadigan degradation yaratadi.
Tumbling Window uchun hujjat nominal ishlash bilan cheklanmaydi. Unda ownership, retry chegarasi, cleanup sharti, restore ketma-ketligi va emergency override muddati ko‘rsatiladi. Operator konfiguratsiyani o‘zgartirganda ta’sir qiladigan key, partition yoki vaqt oralig‘ini oldindan baholab, o‘zgarishdan keyingi invariantni tekshiradi.
Tumbling Window sinovida nazorat guruhi yoki shadow oqim foydali. Natijalar faqat son jihatdan emas, key va vaqt bo‘yicha moslashtirib taqqoslanadi; aks holda bir xil aggregate xato recordlarni yashirishi mumkin.
Tumbling Window uchun qabul mezoni misol bilan tasdiqlanadi: bir xil input va boshlang‘ich state berilganda kutilgan output, metadata hamda tashqi effect birgalikda tekshiriladi. Faqat yakuniy qiymatni solishtirish oraliq yo‘qotish yoki takroriy yozuvni yashirishi mumkin.
Tumbling Window bo‘yicha o‘zgarishdan keyin faqat muvaffaqiyatli oqim emas, miss, timeout, duplicate, late data, restart va partial failure holati ham tekshiriladi. Qabul qilingan cheklovlar hujjatlashtiriladi va boshqa workloadga avtomatik ko‘chirilmaydi.
Bog‘liq tushunchalar
windowing, sliding window, event time, watermark, late event, aggregation