couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rnew...@apache.org
Subject chttpd commit: updated refs/heads/master to 4b01dea
Date Sat, 30 Aug 2014 10:52:48 GMT
Repository: couchdb-chttpd
Updated Branches:
  refs/heads/master 4fd6ca1e5 -> 4b01dea85


Decrement clients_requesting_changes in a timely fashion

The previous approach using process_tracker was flawed. If a client
reuses a connection, as is common, the clients_requesting_changes
metric will only be decremented when the connection is terminated,
even if the connection is not requesting changes.


Project: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/commit/4b01dea8
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/tree/4b01dea8
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/diff/4b01dea8

Branch: refs/heads/master
Commit: 4b01dea85ca8d79aa9377bfb45dc1f88e7253474
Parents: 4fd6ca1
Author: Robert Newson <rnewson@apache.org>
Authored: Sat Aug 30 11:52:24 2014 +0100
Committer: Robert Newson <rnewson@apache.org>
Committed: Sat Aug 30 11:52:24 2014 +0100

----------------------------------------------------------------------
 src/chttpd_db.erl | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-chttpd/blob/4b01dea8/src/chttpd_db.erl
----------------------------------------------------------------------
diff --git a/src/chttpd_db.erl b/src/chttpd_db.erl
index 84f973e..b6ed459 100644
--- a/src/chttpd_db.erl
+++ b/src/chttpd_db.erl
@@ -73,8 +73,12 @@ handle_changes_req(#httpd{method='GET'}=Req, Db) ->
                 ChangesArgs)
         end);
     Feed when Feed =:= "continuous"; Feed =:= "longpoll"; Feed =:= "eventsource"  ->
-        couch_stats_process_tracker:track([chttpd, clients_requesting_changes]),
-        fabric:changes(Db, fun changes_callback/2, {Feed, Req}, ChangesArgs);
+        couch_stats:increment_counter([chttpd, clients_requesting_changes]),
+        try
+            fabric:changes(Db, fun changes_callback/2, {Feed, Req}, ChangesArgs)
+        after
+            couch_stats:decrement_counter([chttpd, clients_requesting_changes])
+        end;
     _ ->
         Msg = <<"Supported `feed` types: normal, continuous, longpoll, eventsource">>,
         throw({bad_request, Msg})


Mime
View raw message