Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0353211086 for ; Wed, 9 Apr 2014 15:27:09 +0000 (UTC) Received: (qmail 16278 invoked by uid 500); 9 Apr 2014 15:27:07 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 15790 invoked by uid 500); 9 Apr 2014 15:27:06 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Delivered-To: moderator for dev@couchdb.apache.org Received: (qmail 49106 invoked by uid 99); 9 Apr 2014 15:12:36 -0000 X-ASF-Spam-Status: No, hits=-0.4 required=5.0 tests=DC_IMAGE_SPAM_HTML,DC_IMAGE_SPAM_TEXT,DC_PNG_UNO_LARGO,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: local policy) X-KULeuven-Envelope-From: arnaud.schoonjans@student.kuleuven.be X-KULeuven-Scanned: Found to be clean X-KULeuven-ID: BD29F13809C.A24FB X-KULeuven-Information: Katholieke Universiteit Leuven Message-ID: <5345633F.4020704@student.kuleuven.be> Date: Wed, 09 Apr 2014 17:11:59 +0200 X-Kuleuven: This mail passed the K.U.Leuven mailcluster From: Arnaud Schoonjans User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: dev@couchdb.apache.org Subject: Couchdb benchmark shows weird behaviour Content-Type: multipart/mixed; boundary="------------020508030507050508080908" X-Virus-Checked: Checked by ClamAV on apache.org X-Old-Spam-Status: not spam, SpamAssassin (not cached, score=-50.735, required 5, autolearn=disabled, ALL_TRUSTED -1.00, DC_IMAGE_SPAM_HTML 0.14, DC_IMAGE_SPAM_TEXT 0.12, DC_PNG_UNO_LARGO 0.00, LOCAL_SMTPS -50.00) --------------020508030507050508080908 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hallo, I am a student currently working on my thesis, for which I am benchmarking several NoSQL database. One of the benchmarks I ran on couchdb show some unexpected/counter-intuitive results. I included a graph in de attachment. The benchmark set-up is as follows: * A three node couchdb cluster with replication links between each node in both directions. * All update/insert operation are send to the same couchdb node * All Read/scan (range queries) operations are load balanced over all three nodes (round robin) * Ektorp is used as the java client library * The scan operation is implemented by querying the view "_all_docs" with a certain startkey and a limit of 100 documents. De benchmark consists of four parts: * The first five minutes are warm-up. (not shown in the graph) * Between timepoint 5min. and 10min. in the graph all nodes are up and running normally. * Between 10min and 15min a firewall rule is inserted on one of the (read) nodes which prevent incoming and outgoing couchdb traffic (port 5984). * From 15min. on, this firewall rule is removed again. So we're back to normal operation. The purpose of the firewall rule in the middle of the benchmark is to simulate network-failure. The benchmark test examines how the couchdb database reacts to a network partition by looking at the latency of the different operations in time. The weird thing is: the graph show that read and update operations are getting significantly slower when the firewall rule is present, while the insert and scan operation doesn't seem to feel an increase in latency. The node where the firewall rule is present, is only used for read and scan operation. So, normally only the read and scan operations should have more latency. The latency of the other operations should stay stable. I did the same benchmark using several other NoSQL databases which show no such behaviour as the one we see here. I closely monitored the behaviour of couchdb, but I didn't found an explanation for this phenomena. So, I think it has something to do with the architecture of couchdb. Can anyone help me with an architectural explanation, which explains why this behaviour is showing up? Thanks in advance, Arnaud Schoonjans --------------020508030507050508080908--