You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2013/08/01 22:46:31 UTC
[02/10] git commit: TS-1255 Added buffer size configurations to
overridable
TS-1255 Added buffer size configurations to overridable
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/2f984695
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/2f984695
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/2f984695
Branch: refs/heads/master
Commit: 2f98469585cd0368232cd90f7acd8a90dbb7bff6
Parents: cc0b06a
Author: Leif Hedstrom <zw...@apache.org>
Authored: Sun Jul 28 21:57:39 2013 +0200
Committer: Leif Hedstrom <zw...@apache.org>
Committed: Thu Aug 1 22:42:48 2013 +0200
----------------------------------------------------------------------
proxy/InkAPI.cc | 14 ++++++++++++++
proxy/InkAPITest.cc | 4 +++-
proxy/api/ts/ts.h.in | 2 ++
proxy/http/HttpConfig.cc | 12 +++++-------
proxy/http/HttpConfig.h | 8 ++++----
proxy/http/HttpSM.cc | 10 +++++-----
6 files changed, 33 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f984695/proxy/InkAPI.cc
----------------------------------------------------------------------
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index 7c2f20f..1ed9933 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -7569,6 +7569,14 @@ _conf_to_memberp(TSOverridableConfigKey conf, HttpSM* sm, OverridableDataType *t
typ = OVERRIDABLE_TYPE_INT;
ret = &sm->t_state.txn_conf->normalize_ae_gzip;
break;
+ case TS_CONFIG_HTTP_DEFAULT_BUFFER_SIZE:
+ typ = OVERRIDABLE_TYPE_INT;
+ ret = &sm->t_state.txn_conf->default_buffer_size_index;
+ break;
+ case TS_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK:
+ typ = OVERRIDABLE_TYPE_INT;
+ ret = &sm->t_state.txn_conf->default_buffer_water_mark;
+ break;
// This helps avoiding compiler warnings, yet detect unhandled enum members.
case TS_CONFIG_NULL:
@@ -7793,6 +7801,8 @@ TSHttpTxnConfigFind(const char* name, int length, TSOverridableConfigKey *conf,
cnf = TS_CONFIG_HTTP_CACHE_MAX_STALE_AGE;
else if (!strncmp(name, "proxy.config.http.cache.fuzz.min_time", length))
cnf = TS_CONFIG_HTTP_CACHE_FUZZ_MIN_TIME;
+ else if (!strncmp(name, "proxy.config.http.default_buffer_size", length))
+ cnf = TS_CONFIG_HTTP_DEFAULT_BUFFER_SIZE;
break;
case 'r':
if (!strncmp(name, "proxy.config.http.response_server_str", length)) {
@@ -7929,6 +7939,10 @@ TSHttpTxnConfigFind(const char* name, int length, TSOverridableConfigKey *conf,
if (!strncmp(name, "proxy.config.http.negative_caching_lifetime", length))
cnf = TS_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME;
break;
+ case 'k':
+ if (!strncmp(name, "proxy.config.http.default_buffer_water_mark", length))
+ cnf = TS_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK;
+ break;
case 'l':
if (!strncmp(name, "proxy.config.http.cache.cluster_cache_local", length))
cnf = TS_CONFIG_HTTP_CACHE_CLUSTER_CACHE_LOCAL;
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f984695/proxy/InkAPITest.cc
----------------------------------------------------------------------
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index c33ab2b..42de90c 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -7397,7 +7397,9 @@ const char *SDK_Overridable_Configs[TS_CONFIG_LAST_ENTRY] = {
"proxy.config.http.flow_control.low_water",
"proxy.config.http.flow_control.high_water",
"proxy.config.http.cache.range.lookup",
- "proxy.config.http.normalize_ae_gzip"
+ "proxy.config.http.normalize_ae_gzip",
+ "proxy.config.http.default_buffer_size",
+ "proxy.config.http.default_buffer_water_mark"
};
REGRESSION_TEST(SDK_API_OVERRIDABLE_CONFIGS) (RegressionTest * test, int /* atype ATS_UNUSED */, int *pstatus)
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f984695/proxy/api/ts/ts.h.in
----------------------------------------------------------------------
diff --git a/proxy/api/ts/ts.h.in b/proxy/api/ts/ts.h.in
index e72b1c5..b9cd558 100644
--- a/proxy/api/ts/ts.h.in
+++ b/proxy/api/ts/ts.h.in
@@ -673,6 +673,8 @@ extern "C"
TS_CONFIG_HTTP_FLOW_CONTROL_HIGH_WATER_MARK,
TS_CONFIG_HTTP_CACHE_RANGE_LOOKUP,
TS_CONFIG_HTTP_NORMALIZE_AE_GZIP,
+ TS_CONFIG_HTTP_DEFAULT_BUFFER_SIZE,
+ TS_CONFIG_HTTP_DEFAULT_BUFFER_WATER_MARK,
TS_CONFIG_LAST_ENTRY,
} TSOverridableConfigKey;
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f984695/proxy/http/HttpConfig.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpConfig.cc b/proxy/http/HttpConfig.cc
index 02b7704..b4db289 100644
--- a/proxy/http/HttpConfig.cc
+++ b/proxy/http/HttpConfig.cc
@@ -1329,11 +1329,9 @@ HttpConfig::startup()
HttpEstablishStaticConfigByte(c.oride.negative_caching_enabled, "proxy.config.http.negative_caching_enabled");
HttpEstablishStaticConfigLongLong(c.oride.negative_caching_lifetime, "proxy.config.http.negative_caching_lifetime");
- // Buffer size
- HttpEstablishStaticConfigLongLong(c.default_buffer_size_index, "proxy.config.http.default_buffer_size");
-
- // Buffer water mark
- HttpEstablishStaticConfigLongLong(c.default_buffer_water_mark, "proxy.config.http.default_buffer_water_mark");
+ // Buffer size and watermark
+ HttpEstablishStaticConfigLongLong(c.oride.default_buffer_size_index, "proxy.config.http.default_buffer_size");
+ HttpEstablishStaticConfigLongLong(c.oride.default_buffer_water_mark, "proxy.config.http.default_buffer_water_mark");
// Stat Page Info
HttpEstablishStaticConfigByte(c.enable_http_info, "proxy.config.http.enable_http_info");
@@ -1575,8 +1573,8 @@ HttpConfig::reconfigure()
params->record_tcp_mem_hit = INT_TO_BOOL(m_master.record_tcp_mem_hit);
params->oride.send_http11_requests = m_master.oride.send_http11_requests;
params->oride.doc_in_cache_skip_dns = INT_TO_BOOL(m_master.oride.doc_in_cache_skip_dns);
- params->default_buffer_size_index = m_master.default_buffer_size_index;
- params->default_buffer_water_mark = m_master.default_buffer_water_mark;
+ params->oride.default_buffer_size_index = m_master.oride.default_buffer_size_index;
+ params->oride.default_buffer_water_mark = m_master.oride.default_buffer_water_mark;
params->enable_http_info = INT_TO_BOOL(m_master.enable_http_info);
params->reverse_proxy_no_host_redirect = ats_strdup(m_master.reverse_proxy_no_host_redirect);
params->reverse_proxy_no_host_redirect_len =
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f984695/proxy/http/HttpConfig.h
----------------------------------------------------------------------
diff --git a/proxy/http/HttpConfig.h b/proxy/http/HttpConfig.h
index bfbe29b..27a96e7 100644
--- a/proxy/http/HttpConfig.h
+++ b/proxy/http/HttpConfig.h
@@ -425,6 +425,7 @@ struct OverridableHttpConfigParams {
freshness_fuzz_time(240), freshness_fuzz_min_time(0),
max_cache_open_read_retries(-1), cache_open_read_retry_time(10), background_fill_active_timeout(60),
http_chunking_size(4096), flow_high_water_mark(0), flow_low_water_mark(0),
+ default_buffer_size_index(8), default_buffer_water_mark(32768),
// Strings / floats must come last
proxy_response_server_string(NULL), proxy_response_server_string_len(0),
@@ -570,6 +571,9 @@ struct OverridableHttpConfigParams {
MgmtInt flow_high_water_mark; ///< Flow control high water mark.
MgmtInt flow_low_water_mark; ///< Flow control low water mark.
+ MgmtInt default_buffer_size_index;
+ MgmtInt default_buffer_water_mark;
+
// IMPORTANT: Here comes all strings / floats configs.
///////////////////////////////////////////////////////////////////
@@ -758,8 +762,6 @@ public:
MgmtByte errors_log_error_pages;
MgmtInt slow_log_threshold;
- MgmtInt default_buffer_size_index;
- MgmtInt default_buffer_water_mark;
MgmtByte enable_http_info;
// Cluster time delta is not a config variable,
@@ -936,8 +938,6 @@ HttpConfigParams::HttpConfigParams()
record_cop_page(0),
record_tcp_mem_hit(0),
errors_log_error_pages(1),
- default_buffer_size_index(8),
- default_buffer_water_mark(32768),
enable_http_info(0),
cluster_time_delta(0),
redirection_enabled(1),
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f984695/proxy/http/HttpSM.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index 51f8a66..5647f22 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -5202,7 +5202,7 @@ HttpSM::do_setup_post_tunnel(HttpVC_t to_vc_type)
int64_t alloc_index;
// content length is undefined, use default buffer size
if (t_state.hdr_info.request_content_length == HTTP_UNDEFINED_CL) {
- alloc_index = (int) t_state.http_config_param->default_buffer_size_index;
+ alloc_index = (int) t_state.txn_conf->default_buffer_size_index;
if (alloc_index<MIN_CONFIG_BUFFER_SIZE_INDEX || alloc_index> MAX_BUFFER_SIZE_INDEX) {
alloc_index = DEFAULT_REQUEST_BUFFER_SIZE_INDEX;
}
@@ -5639,7 +5639,7 @@ HttpSM::setup_cache_read_transfer()
buf->append_block(HTTP_HEADER_BUFFER_SIZE_INDEX);
#endif
- buf->water_mark = (int) t_state.http_config_param->default_buffer_water_mark;
+ buf->water_mark = (int) t_state.txn_conf->default_buffer_water_mark;
IOBufferReader *buf_start = buf->alloc_reader();
@@ -5884,7 +5884,7 @@ HttpSM::find_http_resp_buffer_size(int64_t content_length)
if (content_length == HTTP_UNDEFINED_CL) {
// Try use our configured default size. Otherwise pick
// the default size
- alloc_index = (int) t_state.http_config_param->default_buffer_size_index;
+ alloc_index = (int) t_state.txn_conf->default_buffer_size_index;
if (alloc_index<MIN_CONFIG_BUFFER_SIZE_INDEX || alloc_index> DEFAULT_MAX_BUFFER_SIZE) {
alloc_index = DEFAULT_RESPONSE_BUFFER_SIZE_INDEX;
}
@@ -6002,7 +6002,7 @@ HttpSM::setup_transfer_from_transform()
// TODO change this call to new_empty_MIOBuffer()
MIOBuffer *buf = new_MIOBuffer(alloc_index);
- buf->water_mark = (int) t_state.http_config_param->default_buffer_water_mark;
+ buf->water_mark = (int) t_state.txn_conf->default_buffer_water_mark;
IOBufferReader *buf_start = buf->alloc_reader();
HttpTunnelConsumer *c = tunnel.get_consumer(transform_info.vc);
@@ -6117,7 +6117,7 @@ HttpSM::setup_server_transfer()
MIOBuffer *buf = new_empty_MIOBuffer(alloc_index);
buf->append_block(HTTP_HEADER_BUFFER_SIZE_INDEX);
#endif
- buf->water_mark = (int) t_state.http_config_param->default_buffer_water_mark;
+ buf->water_mark = (int) t_state.txn_conf->default_buffer_water_mark;
IOBufferReader *buf_start = buf->alloc_reader();
// we need to know if we are going to chunk the response or not