Live data from Hacker News

MongoDB and DataStax, In the Rearview Mirror

blog.couchbase.com

41–50 of 55 posts

Re: MongoDB and DataStax, In the Rearview Mirror

#42
post #35

"To deliver the highest write performance, Couchbase Server writes to an integrated, in-memory cache first. Then, it synchronizes the cache with the storage device for durability." Comparing the write speed of non-durable writes against the write speed of durable writes is the same bullshit tactic that MongoDB first utilized a few years ago. Why don't we just add /dev/null in there too? We're also apparently using 2…

I'm intrigued as to how one can possibly justify calling that a "write".

Because the data is written to a data structure before the write completed. You can "write" to a cache or to an in-memory database. Databases, relational or NoSQL, write to memory first whether it is to an application managed cache or an OS managed cache (i.e. page cache).

Re: MongoDB and DataStax, In the Rearview Mirror

#43
post #17

You know what would be a nice twist, if database vendors added jepsen runs to their benchmarking mix.

FoundationDB did just that: http://blog.foundationdb.com/call-me-maybe-foundationdb-vs-j...

That is pretty cool. I'm surprised that foundation doesn't get more press.

Re: MongoDB and DataStax, In the Rearview Mirror

#45
post #29
post #20

Earlier quoted context omitted.

Of course they are not durable until fsync; that is why having an upper bound on how long that will be is important. Out of the box Cassandra defaults to an upper bound of 10s. Couchbase defaults to no upper bound at all -- you can lose arbitrary amounts of data on power loss. That's a huge difference. Since Couchbase does not support a time bound on fsyncs, there are two ways to make a fair comparison: make both sys…

As can Cassandra. It depends on how much data is still in the page cache. I do agree both systems can be configured for immediate durability. However, we went with the default values as most people (and most databases) do not sync on every write. It is too much of a performance cost.

> It is too much of a performance cost.

Its "MongoDB is web-scale" all over again.

Re: MongoDB and DataStax, In the Rearview Mirror

#46
Just wanted to point out that this "we are writing to memory only" thing in Couchbase doesn't apply to CouchDB. CouchDB will fsync the data to the disk by default.

http://couchdb.readthedocs.org/en/latest/config/couchdb.html

You can then disable that if you don't care but it. So don't confuse Couchbase's policy with CouchDB (Couchdbase it seems has gone the way of Mongo here).

Also couchdb writes in append only mode and will let you crash restart your server without corrupting your data.

Re: MongoDB and DataStax, In the Rearview Mirror

#47
post #19

Earlier quoted context omitted.

Hi, thanks a lot for posting this! I have been thinking about using Couchbase Server for a mobile project because I like the mobile client component they have. I'm particularly concerned about the "opaque administration" issue - have you had to actually pay the company [1] for support because the log output is so bad, or did it just slow down your debugging process. [1] I have nothing against paying for support, but…

I don't have a problem with charging for support either, but Couchbase (for us) is just a memcache replacement, so that price is too high to justify. Without support the "debugging process" consists of blindly trying random things to fix the problem before giving up and moving on to something else.

The 'community' edition is free, can you run that in production? Agree on the crazy logs it generates.

Re: MongoDB and DataStax, In the Rearview Mirror

#48
post #35

"To deliver the highest write performance, Couchbase Server writes to an integrated, in-memory cache first. Then, it synchronizes the cache with the storage device for durability." Comparing the write speed of non-durable writes against the write speed of durable writes is the same bullshit tactic that MongoDB first utilized a few years ago. Why don't we just add /dev/null in there too? We're also apparently using 2…

So by default when the SDK returns 'true' for a write, yes it's just been written to RAM on the first (master) node. However you can if you desire 'observe' the write, which will return true when the write has hit disk and/or the RAM of the replica nodes (depending on what options you specify).

Ultimately it's a performance tradeoff - if you want sub microsecond writes for your workload then something has to give - certainly for many workloads (session stores, ad tracking, messaging queues) the tradeoff that you may loose the last few writes if you loose a node and it's replicas simultaneously is an acceptable one.

(Full disclosure: I work for Couchbase).

Re: MongoDB and DataStax, In the Rearview Mirror

#49
post #19
post #5

My problems with Couchbase: - Completely opaque administration. The company charges for support ($5k per production node per year!), so perhaps unsurprisingly the log output is unreadable (similar to a binary stacktrace). Forget about diagnosing cluster issues on your own. - Bizarre failover behavior. In every test scenario I've tried, if any single node goes down my application becomes unresponsive (even if it can s…

Hi, thanks a lot for posting this! I have been thinking about using Couchbase Server for a mobile project because I like the mobile client component they have. I'm particularly concerned about the "opaque administration" issue - have you had to actually pay the company [1] for support because the log output is so bad, or did it just slow down your debugging process. [1] I have nothing against paying for support, but…

(grain of salt: I work in the Cassandra Community team at DataStax)

If you are considering a scalable solution, you can use DataStax Enterprise for free in production if you are a startup (under $20M raised and under $2M in annual revs). Check here: http://www.datastax.com/what-we-offer/products-services/data...

Re: MongoDB and DataStax, In the Rearview Mirror

#50
i don't understand - Couchbase took 1ms per operation without durability configured, ie. in memory. What took so long? Or is network roundtrip included?

>However, MongoDB implements a single lock per database (link). MongoDB nodes are limited to executing a single write at a time per database.

that sounds like a nightmare. Are they for real?

Looking at the results - durable configs, MongoDB and DataStax, have 3ms latency with 25K and 75K ops/sec. Are they using HDDs or SSDs? As a reference point - 5 years ago I was hitting 3.5ms on 15K disks on Oracle, at 20-30K ops/second (durable).

>*Couchbase sponsored this study.

priceless.

Post reply on HN