Forum Discussion

Mark_Moseley's avatar
Mark_Moseley
Icon for Nimbostratus rankNimbostratus
Apr 29, 2009

Getting a previously 'down' box back in pool with "persist hash"

Using some neat stuff I saw here in DevCentral, I've been trying to do some domain+uri persistence. This is mainly to try to keep requests to backend servers with warm OS file caches and to also eventually get a reverse proxy in there as well. We're using 9.2.5 on one set of BigIPs LTMs (yeah, I know, we need to upgrade) and 9.4.3 on another set. I've tried the following on the 9.2.5 LTMs (haven't tested on 9.4.3 since I need to esp working on the 9.2.5 boxes).

 

 

I know crc32 isn't going to give as well-balanced results as md5, but what I've been getting is more than tolerable, so no need for discussion on crc32 vs md5.

 

 

Here's the fragment that does the persistence:

 

 

 

set key [expr [crc32 [concat [HTTP::host] [HTTP::uri]]] % 1001]

 

persist hash $key 3600

 

 

 

Like I said, crc32 gives a tolerable distribution (though if anybody has suggestions on how I can replace it here with md5, seeing as the modulus operator needs integers, I'm all ears). What's less tolerable is what happens when a box goes down and is marked down and then comes back up. When this happens, the previously down box has an anemic amount of connections for hours.

 

 

I've experimented with different 'timeout' values for the 'persist hash' call but even using something like 10 seconds doesn't seem to get it back in the pool. Is there something silly I'm missing or is it just not possible to get it to do what I want it to?

 

 

Thanks!
No RepliesBe the first to reply