You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by fd...@apache.org on 2010/12/23 12:25:49 UTC
svn commit: r1052228 - in /couchdb/branches/1.0.x:
etc/couchdb/default.ini.tpl.in src/couchdb/couch_db.hrl
src/couchdb/couch_rep_httpc.erl src/couchdb/couch_rep_reader.erl
Author: fdmanana
Date: Thu Dec 23 11:25:48 2010
New Revision: 1052228
URL: http://svn.apache.org/viewvc?rev=1052228&view=rev
Log:
Merged revision 1052227 from trunk:
Fix: replicator didn't use the HTTP settings defined in the .ini config
Issue found by Randall Leeds. Thanks.
Closes COUCHDB-992
Modified:
couchdb/branches/1.0.x/etc/couchdb/default.ini.tpl.in
couchdb/branches/1.0.x/src/couchdb/couch_db.hrl
couchdb/branches/1.0.x/src/couchdb/couch_rep_httpc.erl
couchdb/branches/1.0.x/src/couchdb/couch_rep_reader.erl
Modified: couchdb/branches/1.0.x/etc/couchdb/default.ini.tpl.in
URL: http://svn.apache.org/viewvc/couchdb/branches/1.0.x/etc/couchdb/default.ini.tpl.in?rev=1052228&r1=1052227&r2=1052228&view=diff
==============================================================================
--- couchdb/branches/1.0.x/etc/couchdb/default.ini.tpl.in (original)
+++ couchdb/branches/1.0.x/etc/couchdb/default.ini.tpl.in Thu Dec 23 11:25:48 2010
@@ -120,8 +120,8 @@ compression_level = 8 ; from 1 (lowest,
compressible_types = text/*, application/javascript, application/json, application/xml
[replicator]
-max_http_sessions = 10
-max_http_pipeline_size = 10
+max_http_sessions = 20
+max_http_pipeline_size = 50
; set to true to validate peer certificates
verify_ssl_certificates = false
; file containing a list of peer trusted certificates (PEM format)
Modified: couchdb/branches/1.0.x/src/couchdb/couch_db.hrl
URL: http://svn.apache.org/viewvc/couchdb/branches/1.0.x/src/couchdb/couch_db.hrl?rev=1052228&r1=1052227&r2=1052228&view=diff
==============================================================================
--- couchdb/branches/1.0.x/src/couchdb/couch_db.hrl (original)
+++ couchdb/branches/1.0.x/src/couchdb/couch_db.hrl Thu Dec 23 11:25:48 2010
@@ -264,13 +264,7 @@
body = nil,
options = [
{response_format,binary},
- {inactivity_timeout, 30000},
- {max_sessions, list_to_integer(
- couch_config:get("replicator", "max_http_sessions", "10")
- )},
- {max_pipeline_size, list_to_integer(
- couch_config:get("replicator", "max_http_pipeline_size", "10")
- )}
+ {inactivity_timeout, 30000}
],
retries = 10,
pause = 500,
Modified: couchdb/branches/1.0.x/src/couchdb/couch_rep_httpc.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/1.0.x/src/couchdb/couch_rep_httpc.erl?rev=1052228&r1=1052227&r2=1052228&view=diff
==============================================================================
--- couchdb/branches/1.0.x/src/couchdb/couch_rep_httpc.erl (original)
+++ couchdb/branches/1.0.x/src/couchdb/couch_rep_httpc.erl Thu Dec 23 11:25:48 2010
@@ -92,6 +92,7 @@ db_exists(Req, CanonicalUrl, CreateDB) -
end,
case catch ibrowse:send_req(Url, HeadersFun(head), head, [], Options) of
{ok, "200", _, _} ->
+ config_http(CanonicalUrl),
Req#http_db{url = CanonicalUrl};
{ok, "301", RespHeaders, _} ->
RedirectUrl = redirect_url(RespHeaders, Req#http_db.url),
@@ -106,6 +107,19 @@ db_exists(Req, CanonicalUrl, CreateDB) -
throw({db_not_found, ?l2b(Url)})
end.
+config_http(Url) ->
+ #url{host = Host, port = Port} = ibrowse_lib:parse_url(Url),
+ ok = ibrowse:set_max_sessions(Host, Port, list_to_integer(
+ couch_config:get("replicator", "max_http_sessions", "20"))),
+ ok = ibrowse:set_max_pipeline_size(Host, Port, list_to_integer(
+ couch_config:get("replicator", "max_http_pipeline_size", "50"))),
+ ok = couch_config:register(
+ fun("replicator", "max_http_sessions", MaxSessions) ->
+ ibrowse:set_max_sessions(Host, Port, list_to_integer(MaxSessions));
+ ("replicator", "max_http_pipeline_size", PipeSize) ->
+ ibrowse:set_max_pipeline_size(Host, Port, list_to_integer(PipeSize))
+ end).
+
redirect_url(RespHeaders, OrigUrl) ->
MochiHeaders = mochiweb_headers:make(RespHeaders),
RedUrl = mochiweb_headers:get_value("Location", MochiHeaders),
Modified: couchdb/branches/1.0.x/src/couchdb/couch_rep_reader.erl
URL: http://svn.apache.org/viewvc/couchdb/branches/1.0.x/src/couchdb/couch_rep_reader.erl?rev=1052228&r1=1052227&r2=1052228&view=diff
==============================================================================
--- couchdb/branches/1.0.x/src/couchdb/couch_rep_reader.erl (original)
+++ couchdb/branches/1.0.x/src/couchdb/couch_rep_reader.erl Thu Dec 23 11:25:48 2010
@@ -21,11 +21,8 @@
-define (BUFFER_SIZE, 1000).
-define (MAX_CONCURRENT_REQUESTS, 100).
--define (MAX_CONNECTIONS, 20).
--define (MAX_PIPELINE_SIZE, 50).
-include("couch_db.hrl").
--include("../ibrowse/ibrowse.hrl").
-record (state, {
parent,
@@ -53,11 +50,6 @@ next(Pid) ->
init([Parent, Source, MissingRevs_or_DocIds, _PostProps]) ->
process_flag(trap_exit, true),
- if is_record(Source, http_db) ->
- #url{host=Host, port=Port} = ibrowse_lib:parse_url(Source#http_db.url),
- ibrowse:set_max_sessions(Host, Port, ?MAX_CONNECTIONS),
- ibrowse:set_max_pipeline_size(Host, Port, ?MAX_PIPELINE_SIZE);
- true -> ok end,
Self = self(),
ReaderLoop = spawn_link(
fun() -> reader_loop(Self, Parent, Source, MissingRevs_or_DocIds) end