[Moscow.pm] perl method "between"

Kaltashkin Eugene zhecka на gmail.com
Вс Фев 17 10:08:44 PST 2008


Ivan B. Serezhkin пишет:
> Привет.
> Боюсь тебе тут надо смотреть всторону BDB.
> Фишка в том, что такой поиск надо делать на даных, которые лежат в деревьях.
> Можешь конечно сам сделать хэши хэшей - но это неправильное решение.
> Вообщем выборку по времени bdb делает влёт, и по ip кажется тоже.
> Можешь ещё попробовать с libalias повозится? но к ней вроде нет 
> перлового фронтенда.
>   
В общем пришлось написать нормализатор базы GeoIP в формат 
p5-Net-Patricia, расковыряв ipcalc.
На PIII-800 даёт fetch примерно в 45000 записей/сек, на P4-2.8 даёт 
примерно 150.000 зап/сек.
В принципе приемлемо и быстрее чем SQL в глобальной групповой выборке.
http://zhecka.323f.net.ru/server/17.02.2008/stat.html

А есть метод быстрого lookup в массиве между соседними значениями без 
перебора всего массива ?
или скажем если я вдруг сделаю хеш диапазонов и захочу быстро проверить 
где значение ключа меньше или больше
требуемого значения. Что-то я запутался малька :(
Или если попробовать описать это в виде структуры ?
$array{$net}->{$subnet}->{$subsubnet} насколько я потеряю в скорости при 
разименовании хеша ?






Подробная информация о списке рассылки Moscow-pm