[Rio-pm] Aceleração de pesquisa

Marco A P D'Andrade mdacwb em gmail.com
Segunda Abril 2 23:26:31 PDT 2007


Pessoal,

Eu estou fazendo uma ferramenta para agrupamento de ASNames de logs,
porém para isso eu utilizo o módulo Net::CIDR::Lite para pesquisar
classes de IP já identificadas, em busca do objeto adequado.

A grosso modo eu tenho:

  $CIDR->{"AS4370"} = new Net::CIDR::Lite;

  # Tem de transformar em mascara x.y.0.0/mask
  map {
	$CIDR->{"AS4370"}->add( $_ )
    } qw( 189.2/15 189.16/15 189.22/15 200.166/16 200.167/16 );


Bem... o numero de queries é muito alto:

  foreach my $ASN ( keys %$CIDR ) {
	if ( $CIDR->{$ASN}->find( $ip ) ) {
		print "FOUND $ASN\n";
		last;
	}
  }


E o numero de objetos cresce muito (Embratel, Telemar, Telesp, etc ->
já tenho +-40 objetos), e o numero de acessos é alto (logs de http do
click21.com.br ~1G dia)...

Aí vem a pergunta...

Alguem já implementou algum algoritmo de CacheHit para me dar ideias ??

Ou conhece algum meio mais eficiente de fazer esta identificacao ?
Para mim o tratamento já parece bem legal, mas pelos testes iniciais
isso deve consumir muitas horas, e não tenho esse tempo de cpu livre
:(


Ideias, palpites e sugestões são bem vindas!!



Sds,
Marco Antonio


Mais detalhes sobre a lista de discussão Rio-pm