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 27EF6174FF for ; Tue, 2 Jun 2015 23:59:05 +0000 (UTC) Received: (qmail 75062 invoked by uid 500); 2 Jun 2015 22:59:05 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 75014 invoked by uid 500); 2 Jun 2015 22:59:05 -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 75005 invoked by uid 99); 2 Jun 2015 22:59:04 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 02 Jun 2015 22:59:04 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id BCD9BDFD5B; Tue, 2 Jun 2015 22:59:04 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: robertkowalski@apache.org To: commits@couchdb.apache.org Message-Id: <7bee3c561ca94a9684d900952d1c92cb@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: couch commit: updated refs/heads/master to e19b262 Date: Tue, 2 Jun 2015 22:59:04 +0000 (UTC) Repository: couchdb-couch Updated Branches: refs/heads/master 529339b6c -> e19b262d4 perf: http layer - speedup couchdb version lookup It turned out that we spend a lot of our time for every request in the function couch_server:get_version which simply gets the current CouchDB version. Instead of fetching a list of all loaded applications an filtering it we are directly getting the current VSN of CouchDB. Patched version is 10% faster for a simple /get on a document. (Almost?) All our of request-handlers are accessing this function so it should be beneficial for large areas of the http layer. Project: http://git-wip-us.apache.org/repos/asf/couchdb-couch/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb-couch/commit/e19b262d Tree: http://git-wip-us.apache.org/repos/asf/couchdb-couch/tree/e19b262d Diff: http://git-wip-us.apache.org/repos/asf/couchdb-couch/diff/e19b262d Branch: refs/heads/master Commit: e19b262d4e5bd5ff1765b22589b8d3eeaac88749 Parents: 529339b Author: Robert Kowalski Authored: Fri May 29 15:25:00 2015 +0200 Committer: Robert Kowalski Committed: Wed Jun 3 00:57:58 2015 +0200 ---------------------------------------------------------------------- src/couch_server.erl | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb-couch/blob/e19b262d/src/couch_server.erl ---------------------------------------------------------------------- diff --git a/src/couch_server.erl b/src/couch_server.erl index 228edc3..77105ed 100644 --- a/src/couch_server.erl +++ b/src/couch_server.erl @@ -45,12 +45,9 @@ dev_start() -> couch:start(). get_version() -> - Apps = application:loaded_applications(), - case lists:keysearch(couch, 1, Apps) of - {value, {_, _, Vsn}} -> - Vsn; - false -> - "0.0.0" + case application:get_key(couch, vsn) of + {ok, Version} -> Version; + undefined -> "0.0.0" end. get_version(short) -> %% strip git hash from version string