Membase a new NoSQL(membase.org) |
Membase a new NoSQL(membase.org) |
I bet a lot of large sites using multiple memcached servers would find this interesting.
- The FAQ on membase.org is empty and the wiki does not appear to be populated with much content (i.e. 'Directions for working with the membase source and descriptions of the components in the source will be available soon').
- The google group does not appear to have significant content besides a 'Where's the ruby driver?' post.
- My work blocks IRC, so jumping on freenode isn't an option.
- I tried downloading from the northscale.com site, but for whatever reason I cannot enter the required fields on the download form (in Firefox 3.6.4).
- I downloaded the source, which is broken out into a number of directories - figuring out what the various subsystems are and what needs to be done is going to take some digging.
We've obviously got a bit to go from our internal build farms to things that are easier for other contributors to play with. Documentation for developers is still being written.
Forgetting everything we know about the things we've been doing for a while so we can explain it to people who haven't been doing it has proven to be a bit harder than we initially thought. :)
Considering the 'front-end' of membase is memcached code, you should be able to use any library that interfaces with memcached to interface with membase.
Out of curiosity, what drew you towards Cassandra over, say, Riak or MongoDB?
Between Cassandra and Riak, I chose Cassandra because it can run on windows while Riak cannot. I needed it for a data store for some cluster computing work I'm doing, but for various reasons needed my test environment to be windows only. I think I can get rid of that restriction; perhaps benchmarking Riak vs. Cassandra for my particular use case is in order.
Get yourself a shell account and run irssi under screen.
This article (http://seattleweb.intel-research.net/people/lamarca/pubs/pap...) coming out of Intel argues that it is also difficult to implement more sophisticated structures on top of a distributed key/value. The author's main point is that a few specialized applications can and have been built on a plain distributed key/value store, but most applications have ended up having to customize the key/value store's internals to achieve their functional or performance goals.
From the little bit I have read about Membase it looks well positioned to bring simple distributed key/values stores to the next level and back into the lime light.
For a project of mine, I've setup something where the frontend (i.e. javascript) munches on some data structures, which are then passed on to the backend (some Python code for business logic and authentification) which sticks them into the database more or less directly. Works really well, although MongoDB still has this "embrace of the exotic stranger" feeling (i.e., you wonder when exactly your database will stop to like you and just crash), whereas CouchDB is just too slow for my purposes.
That is the case for a large number of these products. At best offering a terrible Cygwin port. In the Windows world the premiere product right now is the beta of AppFabric, but almost no one uses that and it has an absurd list of dependencies that preclude many uses.
The bottom line is that the people who make the new shinnies just don't play on MS boxes and could care less if their toys ever play on MS boxes. No, I'm not talking 'enterprise'.
Also, given the popularity of CRMs and so forth, it might not be good to assume that the pages are really "static". For all we know, their site is using their database to provide content -- edited by documentation/marketing folks -- to page templates.
The difficulties in porting to Windows are slightly more technical than just the availability of a free C compiler with C99 support, and project management politics.
That way you can't use the majority of Windows C developers, many of whom would love to contribute to open source projects, and who has the knowledge of the technical difficulties of porting to Windows.
EDIT: Actually, you can use libevent for some subset of these cases and get speed+portability, but I'm pretty sure memcached predates libevent by quite a bit so they're not. So there's your answer.
Edit: oops, JoachimSchipper beat me to it
I remember the memcached project being announced, and I'm pretty sure it predated github by five years or more.
committing memcached
bradfitz (author)
May 27, 2003
Specifically, that was Tue May 27 07:19:11 2003 +0000.I spent a long night back in 2008 recreating that history as accurately as possible. It involved a couple of git repositories, subversion repositories, and a lot of google and mailing list searches to ensure that every one who ever contributed to the project was properly recognized.
You can read more about that process here: http://www.mail-archive.com/memcached@googlegroups.com/msg00...