Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In additions to all the bugs and improvements done to the code and plugins, the following new features are available when you upgrade from v3.2 to v4.0. For details on what has changed to existing features and configurations that might affect your upgrade, please see

Tagging disks in storage.config

The intent of this feature is to allow content to be assigned to specific disks. As an example, using storage.config tagging, together with rules in hosting.config and volumes.config, you can force certain URLs to go to SSD disks.  TBD more details, Phil and Jan ?

Jira Ticket: https://issues.apache.org/jira/browse/TS-1728

HTTP transaction buffering control

To avoid potential memory consumption issues, transactions can now be set to be throttled when their buffer usage exceeds a bound, and released when it becomes lower. This can also be used as a rough bandwidth throttle per transaction, as limiting the buffer space will throttle origin server connection bandwidth if the client or cache is unable to keep up. This can be set per transaction via the plugin API.

...

Jira Ticket: https://issues.apache.org/jira/browse/TS-1496

CPU thread affinity

It is now possible to set thread affinity for the main worker threads. This can improve performance, particular on NUMA systems. This is configured via

...

Jira Ticket: https://issues.apache.org/jira/browse/TS-1356
Jira Ticket: https://issues.apache.org/jira/browse/TS-1966

Delay proxy services until cache is enabled

When Traffic Server starts, we load meta-data information from the cache. For very large caches, this can take a fairly long time (several seconds). During this load and initialization time, the server will by default proxy requests to the origin. A new configuration has been added, which prevents proxying while the cache is being initialized:

...

Jira Ticket: https://issues.apache.org/jira/browse/TS-1487

Controlling chunking size

A new configuration option is added, which lets you control the size of the chunk sizes for content that is Transfer-Encoding with chunking (default value shown):

...

Jira Ticket: https://issues.apache.org/jira/browse/TS-1457

Caching empty documents

In previous versions of Apache Traffic Server, content with empty bodies were never cacheable, regardless of what the HTTP header said. We now provide a new option, which allows this type of content to (possibly) be cached. This is particularly useful for caching e.g. redirect responses which has no body. The new configuration is (default is off):

...

Jira Ticket: https://issues.apache.org/jira/browse/TS-621

Allow cluster cache to duplicate objects

A new feature and configuration allows for objects to be stored in more than one cluster member. The new configuration is (default off):

...

Jira Ticket: https://issues.apache.org/jira/browse/TS-1270

Host resolution control

Resolving the IP address of an origin server can be set to prefer IP address families in specific orders, both globally and on a per port basis.

...

Jira Ticket: https://issues.apache.org/jira/browse/TS-1307

Overridable configurations

The following configurations are now overridable through plugin APIs and/or the conf_remap.so plugin:

Code Block
  proxy.config.http.chunking.size
  proxy.config.http.flow_control.enabled
  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.default_buffer_size
  proxy.config.http.default_buffer_water_mark
  proxy.config.http.request_header_max_size
  proxy.config.http.response_header_max_size
  proxy.config.http.negative_revalidating_enabled
  proxy.config.http.negative_revalidating_lifetime
  proxy.config.http.accept_encoding_filter_enable

New Plugin: cacheurl

TBD: More details.

New plugin: gzip

The gzip plugin allows you to off-load content compression to your proxy cache, which can be a way to reduce CPU pressure on your origins. It also lets you control compression on the caches even if you can't control the origin servers. This plugin is now part of the default build and installation.

API additions and changes

Lifecycle hooks

Hooks have been added for port initialization, ports ready (accepting connections), and cache ready. See TS-1487 and the TSLifecycleHookAdd man page.

Milestone metrics

The following API has been added for plugins to examine transaction milestone timers:

Code Block
TSReturnCode TSHttpTxnMilestoneGet(TSHttpTxn txnp, TSMilestonesType milestone, TSHRTime *time);

Cache no-store API

Port Descriptors

Background fill indicator

TBD: please edit / add.

HTTP Range requests

Wasn't working with 3.2, is hopefully working with 3.4...