Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BDE86CE6A for ; Thu, 7 Aug 2014 17:57:18 +0000 (UTC) Received: (qmail 81903 invoked by uid 500); 7 Aug 2014 17:57:18 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 81628 invoked by uid 500); 7 Aug 2014 17:57:18 -0000 Mailing-List: contact commits-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 commits@couchdb.apache.org Received: (qmail 81519 invoked by uid 99); 7 Aug 2014 17:57:18 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 07 Aug 2014 17:57:18 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 309F694A090; Thu, 7 Aug 2014 17:57:18 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: rnewson@apache.org To: commits@couchdb.apache.org Date: Thu, 07 Aug 2014 17:57:19 -0000 Message-Id: <9ce1e7c942c84aedbd4879de160ea056@git.apache.org> In-Reply-To: <4f1898c8491f43aaab3b212ef936315a@git.apache.org> References: <4f1898c8491f43aaab3b212ef936315a@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [2/9] couch commit: updated refs/heads/windsor-merge to 2c36e16 Make rev tree stemming for interactives optional Documents with many conflicts and/or tombstones cause significant performance degradation for couch_db_updater due to the stemming of rev trees. This commit helps to fix this problem by making rev tree stemming on interactive updates optional. This change makes it possible for rev trees to temporarily become longer than revs_limit. When active, the burden of rev tree stemming will fall on replication and compaction. BugzID: 30438 Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/b84a58b6 Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/b84a58b6 Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/b84a58b6 Branch: refs/heads/windsor-merge Commit: b84a58b688ff96583681bae2eaab7f83ff04218f Parents: efece0d Author: Benjamin Bastian Authored: Tue Apr 29 13:21:34 2014 -0700 Committer: Robert Newson Committed: Thu Aug 7 18:55:10 2014 +0100 ---------------------------------------------------------------------- src/couch_key_tree.erl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/b84a58b6/src/couch_key_tree.erl ---------------------------------------------------------------------- diff --git a/src/couch_key_tree.erl b/src/couch_key_tree.erl index 9ad6f7f..57c08a0 100644 --- a/src/couch_key_tree.erl +++ b/src/couch_key_tree.erl @@ -76,7 +76,10 @@ stem/2 {revtree(), new_leaf | new_branch | internal_node}. merge(RevTree, Tree, StemDepth) -> {Merged, Result} = merge(RevTree, Tree), - {stem(Merged, StemDepth), Result}. + case config:get("couchdb", "stem_interactive_updates", "true") of + "true" -> {stem(Merged, StemDepth), Result}; + _ -> {Merged, Result} + end. %% @doc Merge a path into a tree.