5

I am doing POC on document data store so for that I have selected MongoDB and CouchBase for evaluation.

Environment Detail is as below

Machine : Centos 6.7, 2 core cpu, CPU MHz: 2494.078, RAM : 7 GB (6 GB Free)

MongoDB db version v3.2.0 with default configuration

CouchBase Version: 4.1.0-5005 Enterprise Edition (Cluster RAM: 3GB, Bucket RAM: 1GB)

Document Size : 326 B

Following is the result of POC

+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+
|  Operation   | insert (in 10 batch each bacth is of 100K ) | select query | select query | select query | select query | select query | range query | range query |
+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+
| Record Count | 1000K                                       | 0            | 100          | 33k          | 140k         | 334k         | 114k        | 460k        |
| Mongo        | 99 sec                                      | 568ms        | 792ms        | 1500ms       | 3800ms       | 7800ms       | -           | 15387ms     |
| CouchBase    | 370 sec                                     | 8ms          | 250ms        | 6700ms       | 28000ms      | 69000ms      | 28644ms     | -           |
+--------------+---------------------------------------------+--------------+--------------+--------------+--------------+--------------+-------------+-------------+

Client: I have used JAVA sdk and spring data.

There is big diffrence in performance of couchbase and mongodb on single node. Is there there any configuration parameter to increase performnace of couchbase?

Azzabi Haythem
  • 2,318
  • 7
  • 26
  • 32
Vipul
  • 816
  • 4
  • 11
  • 26

3 Answers3

1

It appears the current version of Spring Data MongoDB uses WriteConcern.UNACKNOWLEGED - it's fire and forget. You should enable WriteResultChecking.EXCEPTION or use WriteConcern.ACKNOWLEDGED.

http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.mongo-3.write-concern

Shane
  • 61
  • 1
  • 2
  • 1
    Hi @Shane with WriteConcern.ACKNOWLEGED mongodb took 213 ms to write 1 million records. – Vipul Jan 14 '16 at 13:20
0

What durability options are you using? Are you running out of bucket memory? 2 cpus is on the the low side for couchbase minimum requirements, if compaction is running at the same time as your test I would expect that to make a difference. This can be disabled in the settings.

Couchbase on a single node is not something I would ever run in production, minium 3 nodes, so if you have the time increasing your node count might give you some more meaningful figures

Ian
  • 1
  • 1
  • No I am not running out of bucket memory. Yeah I know 2 CPU core is low side but same test on mongo is giving me high throughput. May be I'll try with more CPU. Can you tell me how much operation per second you are getting with 3 nodes ? It would be help full if you share environment detail too. Thank you @lan – Vipul Jan 14 '16 at 06:23
  • My production cluster is fairly large, 10 nodes, 8 cpus per node. It can handle 200 000plus transactions per second when using the durability options write to disk 0, wait for replica 0. Have you looked at using ycsb to run your benchmarks? See my blog entry https://embracingnosql.wordpress.com/2015/09/28/benchmarking-your-couchbase-cluster-using-yahoo-cloud-serving-benchmark/ – Ian Jan 14 '16 at 08:34
0

If you have 6GB of memory available, you might want to increase the amount of memory allocated to your bucket. In MongoDB 3.2, WiredTiger will use 60% of memory minus 1GB. For 7GB, that's 2.6 to 3.2GB (I'm not sure if it is 60% of available or 60% of total). Perhaps configure your bucket to match that.

Shane
  • 61
  • 1
  • 2