Apr 22, 2010 at 11:19 PM
Edited Apr 22, 2010 at 11:19 PM
WebRole = Memcached Role:
I attempted to put together an example project, however, the core reason this can not work is that a WebRole can only host via three ports all of which are bound to HTTP based traffic. You have HTTP, HTTPS, and Internal Endpoint only exposing 1 HTTP endpoint.
The attempt I made was to try to turn on the internal endpoint to allow all the machines to communicate with each other (kind of a pre-req for the 'distributed' part of 'distributed' cache) - but this port is restricted to the http protocol, sadly.
So at least for now you can't host anything other than HTTP/S based stacks in a WebRole and must purchase a WorkerRole (who can host on any port). This is probably the key difference between the two. So at the end of the day we
can host a memcached instance in a webrole, we just can't get that host exposed to other instances. Which makes it no more effective than running with System.Web.Cache.
As for 64bit:
The 64 bit versions of memcached do not work in Azure as of yet. It has to do with the process model. There is currently only one version that works. When Azure supports the 64 bit we should be able to use the latest release of memcached.