TGViewer
Engineering Notes Engineering Notes @boboshersnotes · 2.61K subscribers
Post #312 1.03K
Ba'zi katta platformalarda username tanlayotganingizda aslida mavjud bo'lmagan username kiritsangiz ham "Username already exists" deb chiqishi mumkin. Ko'p hollarda bunga sabab platforma usernameni tekshirish uchun bloom filter ishlatgani va false positive holat uchun ikkinchi darajali qidiruv ishlatilmagani sabab bo'ladi. Natijada qidiruv tezligi oshsa-da, ba'zida bir username boshqasini "to'sib" qo'yadi.

Bloom filter nima?

Agar O(1) vaqtda kiritilgan ma'lumot sizdagi ma'lumotlar to'plami ichida bor yoki yo'qligini tekshirish so'ralsa qanday yechim qilasiz? Menimcha, Joma akaning eng kuchli quroli – hashmap ishlatasiz. Lekin sizdagi ma'lumot hajmi juda kattalashib ketsa hashtable anchagina joy talab qiladi.

Bloom filter ham hash tablega o'xshash data structure, faqat ancha kam joy oladi. Buning uchun u bitta hash function o'rniga bir nechta hash function kombinatsiyasini ishlatadi. Lekin buning natijasida bloom filter probabilistic data structurega aylanadi. Ya'ni u "bor" yoki "yo'q" emas, "yo'q" yoki "bor bo'lishi mumkin" degan javoblar qaytaradi. Bor bo'lishi mumkin degani bor degani emas.

Masalan A qiymatni bloom filterga (hash functionlarga) kiritganda 1 va 2 qiymatlari qaytdi va bit arrayda shu qiymatlar "band" deb belgilandi. B qiymat esa 2 va 3 natija qaytardi. Endi 3 ham band qilindi. Keyin C ma'lumot hash functionlarga kiritilganda 1 va 3 natijalar qaytdi. Aslida oldin bunday ma'lumot kiritilmagan bo'lsa ham 1 ham 3 ham "band" bo'lgani uchun bloom filter bu ma'lumot oldindan bor degan natijani qaytaradi. Xuddi mana shu holat false positive deb hisoblanadi.

Bloom filterning eng katta kamchiliklaridan biri esa unga kiritilgan ma'lumotni o'chirib bo'lmasligida. Sababi, bit arraydagi 1 ta bitni bir nechta kiritilgan bir nechta qiymatlar har xil boshqa kombinatsiyalarda belgilagan bo'lishi mumkin. Masalan, A (1, 2) bitlarni, B (2, 3) bitlarni belgilagan. Ikkalasi ham bit 2 ni belgilagan. Agar A (1, 2) ni o'chirsa B (2, 3) ham bit 2 o'chgani sabab invalid bo'lib qoladi. Shuning uchun bloom filterga kiritilgan ma'lumotni qaytib o'chirib bo'lmaydi.
(G'oya: Browsing history uchun ishlatish kerak edi buni🙂)

@boboshersnotes
  • 👍 22
More from @boboshersnotes
  1. Oct 7, 2026– How much customization do you need? – Yes
  2. Oct 5, 2026I pinch the airpods once, Youtube video on my laptop is paused. I pinch it again, the vide…
  3. Oct 5, 2026The smartest kids in Kazakhstan should not be doing AI or maxxing out Claude. AI products…
  4. Sep 28, 2026https://www.youtube.com/watch?v=9HIy5dJE-zQ
  5. Sep 22, 2026spa-net.com qiziq challange ekan, kun bo'yi "enter" bosishdan zerikkanda bosh qotirib ko'r…
  6. Sep 21, 2026Bizda odatda juma kunlarining ikkinchi yarmi ishga to'g'ridan-to'g'ri aloqador bo'lmagan n…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →