perl API : idsession CRC32 vs ord function for test
Apache::Session
Brad Fitzpatrick
brad@danga.com
Tue, 27 Jul 2004 09:25:35 -0700 (PDT)
Eric,
We recently discussed this on the list and agreed to switch it to CRC32.
(not sure if you were on the list then...)
Anyway, I just got around to checking it into CVS. I'll probably do a new
CPAN release next.
- Brad
On Tue, 27 Jul 2004, eric GERMAN wrote:
> Hi , I keep trying memcached + perl API + apache::Session
>
> the keys are like this :
>
> stats cachedump 7 4
> ITEM 5ee71b9d6c06f42898a8854d9b085ea5 [43 b; 1090916693 s]
> ITEM b37ba939c5fdf9b47af27c4a5539c3b5 [43 b; 1090916693 s]
> ITEM df1506343dd4c87ef24af32b326ee19c [43 b; 1090916693 s]
> ITEM 1ff0a0b1df2c4f47be6eb5c2f604bb5e [43 b; 1090916693 s]
>
> (generated by Apache::Session:Generate::MD5.pm function)
>
> with the original API perl (using ord function) with 2 servers my stats
> result are :
>
> [root@portable memcached-1.1.11]# telnet 10.75.237.156 11212
> Trying 10.75.237.156...
> Connected to 10.75.237.156 (10.75.237.156).
> Escape character is '^]'.
> stats items
> END
> quit
> Connection closed by foreign host.
> [root@portable memcached-1.1.11]# telnet 10.75.237.156 11211
> Trying 10.75.237.156...
> Connected to 10.75.237.156 (10.75.237.156).
> Escape character is '^]'.
> stats items
> STAT items:7:number 99
> STAT items:7:age 41
> END
>
> ==> Only bucker 0 is using .
>
> When I use String::CRC32 I have :
>
>
>
> [root@portable memcached-1.1.11]# telnet 10.75.237.156 11212
> Trying 10.75.237.156...
> Connected to 10.75.237.156 (10.75.237.156).
> Escape character is '^]'.
> stats items
> STAT items:7:number 43
> STAT items:7:age 25
> END
> quit
> Connection closed by foreign host.
> [root@portable memcached-1.1.11]# telnet 10.75.237.156 11211
> Trying 10.75.237.156...
> Connected to 10.75.237.156 (10.75.237.156).
> Escape character is '^]'.
> stats items
> STAT items:7:number 56
> STAT items:7:age 41
> END
>
> my diff
> [root@portable Cache-Memcached-1.0.12]# diff Memcached.pm
> Memcached.pm.good
> 15c15
> <
> ---
> > use String::CRC32;
> 602,604c602,605
> < foreach (split //, shift) {
> < $hash = $hash*33 + ord($_);
> < }
> ---
> > $hash = (crc32(shift) >> 16) & 0x7fff;
> > # foreach (split //, shift) {
> > # $hash = $hash*33 + ord($_);
> > # }
>
>
> thanks
> eric german
>
>
>