This client looks really good for .NET. For instance the open source client listed on danga doesn't fail very well when you pull the connection on one of the servers in the pool, you get a flood of exceptions. This client much more correctly flags the server as down, removes it from the list and then checks to see if its back up at a later time.
<br><br>That alone is really sweet. Using native .NET configs is nice too, the class design is also much more extensible. Everyone will have to customize the client for their environment and this client will be easy customize.
<br><br>I would like to add the ability to define different "bins" or groups of servers for different cache purposes, instead of having the one big list, we can discuss offline. The only other thing i see right off is that I'll need to remove the log4net debug calls for our prod environment, but that's not a big deal.
<br><br>Thank you very much for sharing this code, hopefully we can help contribute back, I'll be setting it up and testing this week and next.<br><br>Thanks!<br>Kevin<br><br><div><span class="gmail_quote">On 7/6/07,
<b class="gmail_sendername">a.</b> <<a href="mailto:email@example.com">firstname.lastname@example.org</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
we could argue which is more complete. my personal opinion is that<br>ported code usually doesn't take advantage of the target platform,<br>but mirrors an implementation which was tailored for the source<br>platform.<br>
<br>even if .net and java are similar, a code written for java can under/<br>over perform on .net.<br><br>additionally i did not feel comfortable with the architecture of the<br>ported code, mainly with the locking and server pool handling.
<br><br>the description page on code plex is not finished yet (my bad), so<br>let me list the main features of my client<br><br>- it's configurable thru app/web.config, no more 10-20 line init<br>codes for the client<br>
- written specially for .net, not ported, using the latest features<br>of the framework<br>- better (hopefully) locking providing better throughput<br>- uses consistent hashing for keys (based on ketama, found on the<br>list some months before)
<br>- keys are hashed using FNV hash, much faster than md5 and have<br>better dispersion than the Object.GetHashCode()<br>- operations are factored into separate classes, so they are more<br>separated from the main client class, easier manageability and thread
<br>safety<br>- more clients -> more options -> more competition -> better clients<br><br><br><br>a.<br><br><br><br><br><br>On Jul 6, 2007, at 1:29 PM, Antonello Provenzano wrote:<br><br>> Thank you for the support, but honestly I don't see the advantage of
<br>> using your library rather than Memcached.NET<br>> (<a href="https://sourceforge.net/projects/memcacheddotnet/">https://sourceforge.net/projects/memcacheddotnet/</a>), that is more<br>> complete and based on the Java client.
<br>><br>> Cheers.<br>> Antonello<br>><br>><br>> On 7/6/07, a. <<a href="mailto:email@example.com">firstname.lastname@example.org</a>> wrote:<br>>> hello list,<br>>><br>>> Previously I mentioned I had to create a client for one of my
<br>>> projects from scratch.<br>>><br>>> I'd like to announce that I've released it under a BSD like license<br>>> at <a href="http://www.codeplex.com/EnyimMemcached">http://www.codeplex.com/EnyimMemcached
</a><br>>><br>>> The state of the project is "works for me", but there can be bugs in<br>>> it, so do not roll out in production before trying it out ;]<br>>><br>>> If you have questions or comments feel free to comment me directly,
<br>>> or ask on the list if your question might concern others.<br>>><br>>><br>>><br>>><br>>> a.<br>>><br>>> --<br>>> <a href="http://enyim.com">enyim.com</a><br>>>