

Membase a new NoSQL - leej
http://membase.org/

======
wvenable
"For those familiar with memcached, membase provides on-the-wire protocol
compatibility, but adds disk persistence; hierarchical storage management;
data replication; live cluster reconfiguration and rebalancing; and secure
multi-tenancy with data partitioning. Like memcached, membase is simple, fast
and elastic."

I bet a lot of large sites using multiple memcached servers would find this
interesting.

~~~
sqrt17
... as in, those people who use memcachedb but would like to have something
bigger?

------
pcarmichael
The timing for me is interesting as I was just about to start up a cassandra
setup here. This might be a better fit for my particular needs if I could get
it running. Unfortunately, I'm having a difficult time figuring out where to
start. A general getting started guide would be very helpful.

\- 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.

~~~
mileszs
I offer no counter or dissent to your post. However, apparently, the binaries
have not yet been posted. Perhaps once they get that crucial detail finished,
things will be clear. It appears they haven't even reached an actual beta
stage. It might have been better for them to wait until everything was ready
to go before launching the site publicly.

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?

~~~
pcarmichael
MongoDB was ruled out because auto-sharding is still alpha (though it should
be out of alpha soon, I'd prefer to wait and see what the community experience
is with it first.)

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.

------
weixiyen
Sounds a lot like what Redis is doing with Redis Cluster, except this one is
already in production.

------
p3ll0n
The key/value model embraced by NoSQL databases (Scalaris, Voldemort, Tokyo
Cabinet, etc) is the simplest and easiest to implement but inefficient when
you are only interested in querying or updating part of a value.

This article ([http://seattleweb.intel-
research.net/people/lamarca/pubs/pap...](http://seattleweb.intel-
research.net/people/lamarca/pubs/paper-ChaRam.pdf)) 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.

~~~
sqrt17
I for one like the concept of storing JSON-like data structures and using
javascript-based indices on top of that, like you can do with CouchDB or
MongoDB. For the greater part, having something where you can store big
amorphous blobs is much less useful than something where you can (a) work on a
standard format (usable at least from Java and Python) and (b) use some
indices to speed up access via selected attributes.

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.

------
mkramlich
if Zynga is already using it behind say Farmville that will give it some cred
out of the gate

~~~
ryanwaggoner
The About page lists "Major Deployments" and seems to indicate that both
Farmville and Cafe World are using it, which is impressive.

------
zppx
Had not the time to search through the codebase, but the source include 10
folders, a sysadmin's hell, some with software in C, some with software in C++
and some with python code, one of them is a folder named 'mencached'.

~~~
mahmud
I worked on a project that had a directory named "manuel" and contained 8 C
files and a file named "make.sh". I always thought it was some guy's private
playground and shouldn't be touched. But once I dug into it I discovered a NIH
implementation of Docbook + Doxygen + Markdown + grep + strings, and make.sh
did what Makefile would have done, use make. And 'manuel' never existed, the
French comments alerted me to guess what it really meant: Manual.

~~~
silentbicycle
And of course, "manual" means, "by hand". :)

------
agotterer
This looks similar to <http://www.gear6.com/memcached-product/memcached>.

~~~
agotterer
Wonder why I got down voted for an informative link to a similar project that
I have no involvement with?

------
leej
* there are alternatives but the backers give this project one up. * web site needs a significant overhaul. * this was a commercial product, if i am not mistaken, and just recently opened up. * is this forked off memcached or just another NoSQL with memcached compatibility is still a mystery.

~~~
dlsspy
It's not a fork. We've done a lot of work on memcached to allow it to support
multiple backends on the same network interface. Part of membase is a new
memcached backend.

------
tobyhede
Does anyone know what kind of durability Membase offers? One of my ongoing
concerns with MongoDB is the lack of single-server durability.

------
Lorin
That is one ugly mascot.

------
ergo98
It's unfortunate there are no Windows binaries (well apparently there are no
binaries yet period, but I mean they don't plan on binaries until some time
out). We could host Linux VMs, but ideally we just run Windows binaries and
get rid of the abstraction.

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.

~~~
wmf
Porting software to a completely different culture isn't cheap and there's
little incentive for volunteer open source projects to do it. If enough
software that you want isn't available on Windows, it's probably cheaper for
you to learn Unix.

~~~
henrikschroder
There's plenty of people that want to volunteer porting projects to Windows,
there are other hurdles such as Microsoft refusing to ship a C99 compiler, and
getting the Windows port accepted into the main repo for the project.

~~~
mahmud
Huh? Everyone builds with mingw. We shipped pure win32 desktop and service
apps that were compiled with mingw.

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.

~~~
henrikschroder
The problem is that MingW is a completely alien environment for the vast
majority of C developers on Windows, and Visual Studio is a completely alien
environment for POSIX projects.

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.

------
peter123
The site membase.org seems to be really slow now. Not a good showcase of the
technology it's trying to preach.

~~~
cmelbye
Why would a static, informational web site be using a database?

~~~
Xurinos
There is an argument in favor of marketing to the perception, though. I am
sure he/she is not the only viewer that might assume they are eating their own
dog food and using it behind their website. We have countless tales on HN
about increasing customer interest by speeding up your site. If you want to
talk about how cool your tech is, make sure your website reflects a similar
attention to the important details. I think the comment is legitimate for the
perspective even if the technological reality is that the slowness is
completely unrelated to the database.

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.

~~~
reitzensteinm
I agree completely. Rational users would realise that the database has little
to no connection to the website's hosting, but are any of us entirely
rational? The details always matter.

~~~
kingkilr
True, but then the rational user might conclude that if you can't manage to
have a performant _static_ website you might not be able to handle the
complicated stuff.

