We are currently testing NoSQL technology with real enterprise data. We have already tested Cassandra and MongoDB and we were looking forward to testing Couchbase.
In order to accomplish this, we have already installed a cluster in 4 nodes. Each machine has a dual-core i3 3.2 GHZ, 4GB RAM and a non-ssd drive.
The cluster configuration is as follows:
- No replication
- Cluster quota (12.7 GB)
- Per Node RAM Quota: 3261 MB
- Total bucket size = 13044 MB (3261 MB x 4 nodes)
- Disk I/O Optimization: Low (default)
- Auto-Compaction: force option disabled
- Flush enabled
Our dataset is 100% write-heavy. There are two nodes which send data to the cluster, with an application which creates 5 processes in one node and 3 in another one. These processes then connect in parallel to CouchBase and send big bulks of data. The experimented is repeated 13 times before reboot and another (bigger) workload being sent.
The application used to insert the data (the one which spawns 8 processes) is written in C# and is using the C# driver for Couchbase. Given that we are inserting large bulks of data, we are using the “BulkLoader”/“StoreHandler” class provided in the documentation for our inserts. The data is sent as a JSON string sequentially using the aforementioned StoreHandler.
After some initial testing we noticed that Couchbase was performing very poorly, and hence we began wondering if we had some problems with our configuration or with our insertion process. We believe that sharding is working, as the web interface seems to show an equal partition of data across all nodes
We were hoping you could help us find out if there really is something wrong with our configuration, and help us solve the issue. We would be very grateful for this.
We can supply any further information about our system in case it is needed.