Unsubscribe From: Bhaskar Maddala [mailto:madda...@gmail.com] Sent: Tuesday, October 29, 2013 9:20 AM To: Willy Tarreau Cc: haproxy@formilux.org Subject: Re: Consistent hashing alternative to sdbm
Hello, I updated the diff [1], it uses function now instead of macros, and added hash function "wt6". I did smoke testing stepping thru the code via the debugger for all hash functions and it looks good, however requires more rigorous testing which I will do later today. On mixing on hashing function I initially tried the alternative of a separate keyword and settled on using the same keyword when I found the unused nibble in the bit masks. Fwiw, using the separate keyword makes the code a little simpler, but from a end user standpoint (which includes me) I found not having another keyword to be better. It would be great if you can take a look at [1] once more and see if you want anything changed. I did not look hard enough, but can/should I add some configs to tests/ folder and how/do these get run when invoking make, or do you run these in some other manner. Are there any additional tests you would like written? Thanks Bhaskar [1] https://github.com/maddalab/haproxy/pull/1 On Tue, Oct 29, 2013 at 2:13 AM, Willy Tarreau <w...@1wt.eu<mailto:w...@1wt.eu>> wrote: Hi Bhaskar, On Tue, Oct 29, 2013 at 12:44:58AM -0400, Bhaskar Maddala wrote: > Hello, > > Can you please take a look at [1]? Make sure it is what you had in mind, > I read thru our conversation here again and I understood that the change we > wanted to implement allowed selection of the hash function in addition to > map-based/consistent and avalance. > > The change provide the ability to specify. <> indicates optional > > hash-type consistent <sdbm/djb2/wt6> > hash-type map-based <sdbm/djb2/wt6> > hash-type avalanche <sdbm/djb2/wt6> > > Not all of it is implemented, i am in the middle of testing, but wanted > any early feed back you might have before i spent a lot of time on it. I feel a bit bothered by having the if on the hash type done for every single character. I'd rather have 3 hash functions that work on (ptr, len) and call the right one with the string and length instead. It will also allow us to have clean hash functions resusable for anything else. Concerning the config, initially I thought that having a separate keyword (eg: hash-algo) to set the algorithm was better than mixing it with the hash-type keyword. But now I'm not completely sure about this because probably people who want to set the algo will also want to be sure about the type of hashing they're applying. I'd like to get other users' feedback on this, particularly those using the consistent hashing. Thanks, Willy