64-bit

157 views
Skip to first unread message

Peter Chafin

unread,
Jul 19, 2008, 10:59:43 AM7/19/08
to memc...@googlegroups.com

To whom it may concern:

 

I have this link:

http://jehiah.cz/projects/memcached-win32/

 

I was interested in using memcached 1.2.1 for my server, but it is running Windows Server 2003 R2, 64-bit version.  Will I be able to use your product on this platform?  Are there any patches that need to be installed to make it work?  Please point me in the right direction, thank you.

 

Peter Chafin

Xiolink Technical Engineer

 

XIOLINK.  Your data... always within reach(r)

 

Kevin Amerson

unread,
Jul 19, 2008, 11:09:15 AM7/19/08
to memc...@googlegroups.com
Hey Peter,

We tested it in our .NET environment on both a windows server 2003 and a fresh Fedora Core 8 environment.  The windows version was not nearly as stable as the regular version.

Heed this warning on the bottom of that page:

- The Win32 port of memcached is not supported by the official memcached team and it should not yet be used in production environments.

The effort involved in setting up and maintaining a few core linux boxes is nothing compared to the stability and peace of mind you get.  The .NET clients have no problem reaching over the network to the memcached boxes.  Save a little extra cash on those license fees too ;).

Kevin

Henrik Schröder

unread,
Jul 19, 2008, 1:32:55 PM7/19/08
to memc...@googlegroups.com
Hi Peter,

I would not recommend using any version prior to 1.2.5 on the windows platform, we've had issues with all of them.

You can get a 1.2.5 binary here:
http://code.jellycan.com/memcached/

Or here:
http://code.google.com/p/beitmemcached/downloads/list

We've been running that on both Server 2003 64bit and Server 2008 64bit without any problems.


/Henrik

Simone Busoli

unread,
Jul 21, 2008, 3:45:01 AM7/21/08
to memc...@googlegroups.com
What's the different between the binaries at the first and second link?

Henrik Schröder

unread,
Jul 21, 2008, 5:13:10 PM7/21/08
to memc...@googlegroups.com
The first is the page maintained by Brodie Thiesfield, he's the guy that made it work with newer version of Visual Studio, and he put up one compiled version.

The other one is just the version I compiled with Visual Studio 2005. The only real difference should be that I included the original icon in my exe as well. :-) My version might have some more optimizations from VS 2005, but it really shouldn't be noticeable. Neither version is official in any way. I've tested my version, and it's been running for a few weeks now live in our product, and it's working great. I just put it up in case anyone else might benefit from it.


/Henrik

Simone Busoli

unread,
Jul 21, 2008, 5:18:58 PM7/21/08
to memc...@googlegroups.com
I noticed that the first page links to a zip file which contains the memcached executable and a dll. Any idea of what that msvcr71.dll is for? Is that needed, since the zip file on your version doesn't contain it?

Henrik Schröder

unread,
Jul 22, 2008, 11:05:12 AM7/22/08
to memc...@googlegroups.com
Msvcr71.dll is a Microsoft Visual C Runtime dll, version 7.1. It's definitely part of Windows XP and later, but I have no idea in which Windows version it started shipping per default. I honestly have no idea if the version I compiled requires it as well and if my Visual Studio just assumed everyone has it and never bothered to include it in the output directory.

The version I made works out of the box on Windows XP, Windows Server 2003 and Windows Server 2008 at least. If someone has a Windows 2000 and could test it, that'd be awesome.


/Henrik Schröder

Simone Busoli

unread,
Jul 22, 2008, 11:54:55 AM7/22/08
to memc...@googlegroups.com
Thanks for the explanation. I've been using the Windows 1.2.1 version on Windows Server 2003 64bit for several months now and I've never has any issues (our setup is made of 16 servers with 512 MB each), but I would like to upgrade to later versions to exploit the new features available (afaik, multi gets and more statistics, anything else?). So fare we've been using Enyim's client without any issues, although we noticed that the distribution of the keys among the servers seems a bit uneven, that is, much more keys end up in the first and last servers of the list. Do you have any statistics available for BeIT Memcached about the key distribution? I guess it's something about the consistent hashing algorithm, but I'm wondering if your client presents the same behavior.

Anyway, thanks for all the work on both the server and the client, it's much appreciated.

Josef Finsel

unread,
Jul 22, 2008, 12:01:33 PM7/22/08
to memc...@googlegroups.com
FWIW, I noticed some problems using Enyim's client with the 1.2.5 server and ended up replacing it with BeIT. I like the fact that BeIT has compression built in and it doesn't hash the tag that gets used for storing data, making it easier to test things.

"If you see a whole thing - it seems that it's always beautiful. Planets, lives... But up close a world's all dirt and rocks. And day to day, life's a hard job, you get tired, you lose the pattern."
Ursula K. Le Guin

Simone Busoli

unread,
Jul 22, 2008, 12:06:02 PM7/22/08
to memc...@googlegroups.com
Why did you need to test the client? I wonder why I should to test anything beyond my own code. Anyways, what are the issues with Enyim's client and memcached 1.2.5? Aside from the multi gets, the protocol should be the same as before.

Josef Finsel

unread,
Jul 22, 2008, 12:17:27 PM7/22/08
to memc...@googlegroups.com
I didn't dig into any specifics with the Enyim client. I just know that when I put the 1.2.5 server up, all of my test cases were running very slowly. Switched back to the older server and everything was fine. Put the BeIT client in place with the same 1.2.5 server and everything worked fine.

As for testing the client, perhaps it would have been better to say that sometimes it can be handy to telnet into the memcached server and do a quick get to see things, especially when doing development work. As we are testing some of the changes in our cache timing algorithm it's nice to put something there, see that our sliding window of refresh actually does keep the updated client in there as expected by monitoring from telnet, deleting the item using telnet to see if we are correctly avoiding cache collissions if something gets expired naturally, etc. With Enyim's hashing the key that is more difficult.

But that latter is a personal preference issue.

Josef


"If you see a whole thing - it seems that it's always beautiful. Planets, lives... But up close a world's all dirt and rocks. And day to day, life's a hard job, you get tired, you lose the pattern."
Ursula K. Le Guin

Henrik Schröder

unread,
Jul 22, 2008, 12:33:11 PM7/22/08
to memc...@googlegroups.com
Well, congratulations on having that version perform well for you, it never worked well for us. :-) 1.2.5 has been performing perfectly though.

I think CAS was introduced after 1.2.1 also if you want that. I also noticed that the BeIT Memcached Client doesn't work with server 1.2.1 since I use the gets command for getting the data all the time to avoid some code duplication. :-)

I didn't look that closely on how the Enyim client does key distribution, I only noticed that it hashes the keys before sending them to memcached, for no good reason, which is why we decided not to use it. In the BeIT Memcached Client we also don't do it exactly like libketama, but we're kinda close. We use a modified FNV-1a hash algorithm, and it's supposed to have a very good avalanche behaviour, which means the distribution of the servers on the server continuum is pretty even. I remember doing a quick check while implementing, and I didn't see any noticeable pattern in the distribution, it looked pretty even in my tests, and that's as far as I went.


/Henrik Schröder

Simone Busoli

unread,
Jul 22, 2008, 12:42:29 PM7/22/08
to memc...@googlegroups.com
Thanks for the clarifications. Good to know that BeIT doesn't work with the 1.2.1 server, I could have spent some time figuring it out if I tried. I guess I'll give it a try then. The reason why I didn't like BeIT a lot when I had to choose for a client is how the client itself is created, if I remember well via a static factory using a name for the client, which was something I didn't like very much, especially during the tests. I remember it throwing exceptions because - since in the setup of the tests I created a new client - it complained about a client with the same name already existing. I guess there's an easy workaround for that, but at the time I didn't bother spending time on it since I liked how Enyim's worked.

Josef Finsel

unread,
Jul 22, 2008, 1:25:23 PM7/22/08
to memc...@googlegroups.com
That reminds me of another thing I like about the BeIT client, the ability to easily support multiple memcached server groups. We cache 4 distinct groups of data and we wanted the ability to separate where they are stored. So we set up different named groups in the config and then let everything flow through to the servers we want.



"If you see a whole thing - it seems that it's always beautiful. Planets, lives... But up close a world's all dirt and rocks. And day to day, life's a hard job, you get tired, you lose the pattern."
Ursula K. Le Guin

Reply all
Reply to author
Forward
0 new messages