Top.Mail.Ru
? ?

Entries by tag: templates

Bloom filter

На досуге переписал свою же C-реализацию bloom filter с помощью шаблонов C++.
Если посмотреть на уже существующие варианты фильтров, например, Bloom_filter_(C) или OpenBloomFilter, то можно заметить, что для использования на больших объёмах данных они непригодны (под большими объёмами я понимаю тысячи хранилищ по несколько миллионов элементов в каждом). Проблема заключается в попытке включить в фильтр и сам функционал добавления элементов, и хранилище данных, и реализации хэш-функций. Получается красиво, изящно, но это хорошо, когда тепло и пахнет померанцем, а у нас такая философия не по климату. :-)
Для задач промышленных масштабов необходимо выполнение трёх простых условий:
1. Фильтр предоставляет функционал для расчёта параметров и заполнения битовой последовательности; ничего больше.
2. Битовые последовательности, т.е. хранилища данных, создаются независимо от фильтров.
3. Пользователь может использовать различные хэш-функции по своему усмотрению.

Что касается последнего пункта, то для C сигнатура всех функций должна быть одинакова, для C++, за счёт применения шаблонов, возможны вариации с типами аргументов.

Собственно сам фильтр можно посмотреть на github.com/mukhin/libbloom.

P.S. Подумалось, что наверное, кроме мэйла нигде так bloom filter не пользуют, чтобы сотни гигабайт данных, 24x7x365 и 150К запросов в секунду. Поэтому никому и в голову не приходит, что может не хватить памяти, например. :-)

Profile

Image
Imagecpplang
cpplang

Latest Month

January 2020
S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Tags

Syndicate

RSS Atom

Comments

  • cpplang
    11 Jul 2012, 07:04
    Спасибо =) я знаю intuit, очень крутой сервис. тока я по ключам его настроила => а задача была по сертификатам =(, у меня как раз не выходит центр сертификации установить на мой сервер.

    но статья…
  • cpplang
    10 Jul 2012, 10:08
    Ничего подобного, наоборот, удивляюсь.

    Кстати, есть такая классная тётка, Лапонина Ольга Германовна, она в МГУ преподаёт. У неё есть учебник по протоколам безопасного сетевого взаимодействия, и там…
  • cpplang
    10 Jul 2012, 07:20
    чувствую нотки сарказма в ваших словах...

    нет, на винде.
  • cpplang
    9 Jul 2012, 20:15
    ipsec? вот это да, круть какая. не на FreeBSD случаем?
  • cpplang
    9 Jul 2012, 07:19
    на данный момент, пытаюсь настроить ipsec между машинами.

    Извините за глупые вопросы, если что.
Powered by LiveJournal.com
Designed by Emile Ong
Image