GH GambleHub

Retention va saqlash siyosati

1) Qonunning

1. Purpose & Minimization. Ishlov berish maqsadlari uchun kerakli miqdorda saqlaymiz.
2. Policy as Code. Retenshen - bu PDF emas, balki amalga oshiriladigan siyosat.
3. Defense in Depth. TTL/ILM + shifrlash + auditlar + Legal Hold.
4. Reversibility & Proof. O’chirish tekshiriladi: harakatlar daftarlari, kripto-shredding, rioya qilish to’g "risidagi hisobot.
5. Cost & Carbon Aware. Retenshen $/GB-oy va uglerod saqlash/egress izini hisobga oladi.

2) Ma’lumotlarni tasniflash va «retenshen xaritasi»

To’plamlarni maqsadli va huquqiy asoslarga ega bo’lgan sinflarga bo’ling:
  • Operatsion (OLTP): buyurtmalar, to’lovlar, sessiyalar.
  • Tahliliy (DWH/sanalar): voqealar, log-faktlar, kesrlar.
  • Shaxsiy (PII/moliya/salomatlik): sub’ektlarning maxsus muddatlari va huquqlarini talab qiladi.
  • Texnik: loglar, metriklar, treyslar, CI artefaktlari.
  • Hujjatlar/media: WORM/arxiv/legasi.

Har bir sinf uchun: egasi, maqsadi, huquqiy bazasi, muddati, himoyalanish darajasi, joriy va maqsadli omborlar.

3) ILM: ma’lumotlarning hayot sikli

Namunaviy konveyer:

1. Ingest (hot) → NVMe/SSD, so’rovlarning yuqori chastotasi.

2. Warm → kamroq o’qiladi, kompresssiya, ustunli formatlar.

3. Cold/Archive → obʼekt/tasma, uzoq kirish.

4. Purge/Delete → olib tashlash kafolatlangan.

ILM profil namunasi (YAML):
yaml dataset: events_main owner: analytics purpose: "product analytics"
classification: "pseudonymized"
lifecycle:
- phase: hot; duration: 7d; storage: nvme; format: row
- phase: warm; duration: 90d; storage: ssd; format: parquet; compress: zstd
- phase: cold; duration: 365d; storage: object; glacier: true
- phase: purge; duration: 0d privacy:
pii: false dp_delete_window: 30d # SLA on personal deletions if ligaments appear

4) Kod sifatida siyosatlar (foydali eskizlar)

4. 1 Admission-siyosat (majburiy teglar/TTL)

yaml policy: require-retention-tags deny_if_missing: [owner, purpose, classification, retention]
default_retention:
logs:  "30d"
traces: "7d"
metrics:"90d"

4. CI/CD (Rego) ga 2 Gate - retenshensiz deployni taqiqlash

rego package policy. retention deny[msg] {
some d input. datasets[d].retention == ""
msg:= sprintf("Retention missing for dataset %s", [d])
}

4. 3 S3/obyekt (lifecycle fragmenti)

yaml
Rules:
- ID: logs-ttl
Filter: { Prefix: "logs/" }
Transitions:
- { Days: 7, StorageClass: STANDARD_IA }
- { Days: 30, StorageClass: GLACIER }
Expiration: { Days: 180 }
NoncurrentVersionExpiration: { NoncurrentDays: 30 }

5) Oqimlarda va navbatlarda retention

Kafka:
  • `retention. ms`/`retention. bytes’- deraza retensheni.
  • Compaction (`cleanup. policy = compact’) - kalitning oxirgi qiymatini saqlaymiz.
  • Tiered Storage - «dumni» sovuq tirga olib boramiz.
  • DLQ - alohida retenshen va TTL.
Misol:
properties cleanup. policy=delete,compact retention. ms = 604800000 # 7d for tail removal
min. cleanable. dirty. ratio=0. 5 segment. ms=86400000
Kafolatlar:
  • Asosiy topiklarning retenshenini ≈ replay/qayta hisoblash biznes oynasini aniqlang.
  • Voqealar uchun billing/audit - alohida uzoq retenshen yoki WORM.

6) Ma’lumotlar bazasi va retenshen

Relyasion:
  • Sana/diapazon bo’yicha partiyalashtirish, eski partiyalarni detach & drop.
  • Sana maydonlari - TTL soʻrovlari uchun indekslar.
  • Vaqtinchalik jadvallar (system-versioned) + eski versiya polislari purge.
SQL-eskiz (PostgreSQL):
sql
-- Monthly instalments
CREATE TABLE audit_events (id bigserial, occurred_at timestamptz, payload jsonb) PARTITION BY RANGE (occurred_at);
-- Cleaning over 365 days
DELETE FROM audit_events WHERE occurred_at < now() - interval '365 days';
VACUUM (FULL, ANALYZE) audit_events;
NoSQL/Time-series:
  • Kalitlar darajasidagi TTL (MongoDB TTL index, Redis’EXPIRE’, Cassandra TTL).
  • Metriklar uchun Downsampling (xom 7d → aggregatlar 90d → uzunligi 365d).
  • TSDBdagi retention siyosati (dedup/agregatsiyali Influx/ClickHouse Materialized Views).

7) Loglar, metriklar, treyslar

Logi: maydonlarni cheklash, niqoblash PD, TTL 7-30d, arxiv 90-180d.
Metriklar: xom yuqori chastotali - 7-14d; downsample (5m/1h) — 90–365д.
Treyslar: tail-sampling va «qiziqarli» (xatolar/dumlar) ni saqlash.

Siyosat (misol):
yaml observability:
logs:  { ttl: "30d", archive: "90d", pii_mask: true }
metrics: { raw: "14d", rollup_5m: "90d", rollup_1h: "365d" }
traces: { sample: "tail-10%", ttl: "7d", error_ttl: "30d" }

8) Olib tashlash: turlari va kafolatlari

Mantiqiy (soft-delete): yozuvni belgilash; tiklash uchun qulay, «olib tashlash huquqiga» mos kelmaydi.
Jismoniy (hard-delete): maʼlumotlarni/versiyalarni/replikalarni amalda olib tashlash.
Kriptografik (crypto-erasure): shifrlash kalitlarini olib tashlash/almashtirish, shundan soʻng maʼlumotlar tiklanmaydi.
Kaskadli: derivatsiyalarni (keshlar, indekslar, tahlillar) uzluksiz olib tashlash.

Shaxsiy oʻchirish (psevdo):

request → locate subject data (index by subject_id) → revoke tokens & unsubscribe jobs → delete in OLTP → purge caches → enqueue erasure in DWH/lakes → crypto-shred keys (per-tenant/per-dataset) → emit audit proof (receipt)

9) Olib tashlash huquqi, Legal Hold va eDiscovery

Olib tashlash/tuzatish huquqi: SLA ijro (masalan, 30 kundan ≤), yo’naltiriladigan harakatlar, kvitansiyalar.
Legal Hold: yuridik so’rovda - ko’rsatilgan to’plamlar/kalitlar uchun olib tashlashni muzlatish; TTL ustuvorligi siyosati.
eDiscovery: maʼlumotlar katalogi, artefaktlar boʻyicha toʻliq matn/atributiv qidiruv, kelishilgan formatlarda eksport qilish.

Legal Hold (YAML) belgisining namunasi:
yaml legal_hold:
dataset: payments scope: ["txn_id:123", "user:42"]
from: "2025-10-31"
until: "2026-03-31"
reason: "regulatory investigation"

10) Bekaplar vs arxivlar vs WORM

Bekaplar - yo’qotishdan/buzilishdan tiklash uchun; qisqa retenshen, tezkor RTO.
Arxivlar - audit/tahlillar uchun uzoq muddatli saqlash, arzon, uzoq foydalanish imkoniyati.
WORM - komplayens uchun o’zgarmas tashuvchilar (moliya/hisobot); «write-once, read-many» siyosati.

Qoidalar:
  • «Asrlar arxivi» deb hisoblamang.
  • Qayta tiklash mashqlari (DR-kunlar), vaqt va to’liqlik to’g’risida hisobot.
  • Saqlash joyidan alohida retenshen, shifrlash va kalitlar bilan bekaplar katalogi.

11) Maxfiylik va anonimlashtirish

Taxallusni oʻzgartirish: kalit jadvali orqali PIIni kechiktirilgan bogʻlash (crypto-erasure kalitiga ruxsat beradi).
Anonimlashtirish: qaytarib bo’lmaydigan texnikalar (k-anonimlik, shovqin, umumlashtirish); usulni, reidentifikatsiya qilish xavfini va yaroqlilik muddatini hujjatlashtiring.

12) Muvofiqlik monitoringi va hisobot

Nazorat panellari: valid retenshenli datasetlar ulushi, ILM fazalari bo’yicha hajmlar, olib tashlash xatolari.
Alertlar: issiq tirdagi maqsadli hajmning oshib ketishi, Legal Hold tugaydigan «osilgan» o’chirishlar.
Hisobotlar: bir oylik olib tashlash auditi (so’rovlar soni, o’rtacha muddat, muvaffaqiyatsizliklar), kripto-shreddingi chop etish.

13) Jarayonlarga integratsiya: geyta va revyu

Design-gate: yangi dataset’owner/purpose/retention’dan oʻtmaydi.
Release-gate: retenshenni egasiz/asossiz oshiruvchi migratsiyalar bloklanadi.
Cost-gate: hot/warm hajmi byudjetdan oshadi - ILMni kuchaytirish uchun trigger.
Security-gate: PDni niqobsiz loglar/treyslarga va TTLga kiritishni taqiqlash.

14) Anti-patternlar

«Hamma narsani abadiy saqlaymiz - birdan foydali boʻladi».
Siyosatga kiritilmagan dasturlarda qattiq kodlangan TTL.
Niqobsiz/TTL/o’chirilmagan loglar va treyslardagi PD.
Toʻliq oʻchirilmagan (keshda/DWH/backaplarda qoldirilgan).
Legal Hold yo’qligi - tergov ostida ma’lumotlarni o’chirish.
Hamma narsada bitta umumiy shifrlash kaliti - «kripto-o’chirish» mumkin emas.
Nol kuzatish: «Biz olib tashlaganimizga ishonamiz», ammo hech qanday dalil yo’q.

15) Arxitektorning chek-varaqasi

1. Har bir dataset uchun owner, purpose, classification, retention, storage tier bormi?
2. ILM/TTL siyosati kod sifatida deklaratsiyalangan va avtomatik ravishda qoʻllaniladimi?
3. PD loglarda/treyslarda yashiriladi; «oq» toʻplamlardan tashqarida taqiqlanganmi?
4. Shaxsiy olib tashlash jarayonlari (SLA, audit, kvitansiyalar) bormi?
5. Crypto-erasure mumkin (per-tenant/per-dataset kalitlari, KMS/rotation)?
6. Bekaplar: jadval, shifrlash, tiklash testlari, alohida kalitlar?
7. Legal Hold/eDiscovery: Qoʻllab-quvvatlanyaptimi?
8. Kafka/navbatlar: belgilangan retenshen/compaction/tiering, DLQ alohida siyosatga ega?
9. Metrika va alertlar retenshen va hajmlarga rioya qilishga mosmi?
10. SDLCdagi revyu va geytlar retenshensiz artefaktlarni blokirovka qiladimi?

16) Mini-retseptlar

16. 1 ClickHouse: 180 kundan oshgan «dumini kesish»

sql
ALTER TABLE events DELETE WHERE event_date < today() - 180;
OPTIMIZE TABLE events FINAL;

16. 2 Redis: TTL и lazy-purge

bash
SET session:123 value EX 3600
CONFIG SET maxmemory-policy allkeys-lru

16. 3 Trassalar uchun tail-sampling

yaml tail_sampling:
policies:
- name: keep-errors-and-slow latency_threshold_ms: 500 status_codes: ["5xx"]
rate_limit_per_min: 5000 default_ttl: "7d"

16. 4 Crypto-erasure (g’oya)


keys:
dataset: users_pii key_id: kms://pii/users/tenant-42 erase(user_id=42):
rotate_or_destroy (key_id) # inability to restore former purge_indexes blocks ("user _ id = 42")
audit("crypto-erasure", user_id)

Xulosa

Saqlash siyosati - bu ma’lumotlar platformasining «skeleti»: ular ma’lumotlarning turli sinflari qancha yashashini, har lahzada qayerda yashashini, vaqt o’tishi bilan qanday arzonlashishini va qachon izsiz yo’q bo’lib ketishini tasvirlaydi - qonuniy, shaffof va tekshiriladigan. Siyosatni kod sifatida retenshen qiling, ILMni xavfsizlik va qiymat bilan bog’lang, kuzatuv va geytlarni yoqing - va siz bir vaqtning o’zida samarali, maqbul va o’sishga tayyor tizimni olasiz.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.