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/03 22:51:34 UTC

[25/52] [abbrv] 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/3.3.x
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