You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Leif Hedstrom <zw...@apache.org> on 2016/05/01 04:13:58 UTC

[DISCUSS] Can we remove CacheLookupHttpConfig now? [TS-1919]

Long ago, I tried to eliminate CacheLookupHttpConfig, it was -1’d because it broke compatibility, and would also have blocked a change set (which was never pushed into ATS). For those who don’t know, CacheLookupHttpConfig is used to pass a handful of (IMO, rarely used) configurations over the cluster protocol. There are a number of things that are broken or bad with this implementation:

1) There’s overhead because of this in the HttpSM, even when you don’t use cache clustering.

2) It also causes an ugly dependency coupling between the HttpSM and the cache.

3) The implementation in the clustering protocol is pretty poor, where each of the members of this CacheLookupHttpConfig class is passed in fixed position slots. It feels that if we should communicate something like this between cluster members, it should use a proper serialization protocol.

4) Finally, eliminating this might make it easier and more reasonable to allow the CacheSM to see some of the HttpSM’s config, such that more configurations might be made overridable.


I also feel that members of a cluster ought to have the same configurations (and they distribute config changes across the network), and, if they modify overridable configurations, both sides ought to do the same overrides (note that the current protocol does not allow transferring anything other than the very small list of configs).

This was discussed on TS-1919, which also blocks TS-1845 and TS-1809. I’m pretty confident that we can still have a functioning clustering without transferring these small number of configs (see the list below).

If anyone still cares about this, and wants to -1 TS-1919 again, please speak up. Be prepared to have good arguments, and patches! :-).

Cheers,

— Leif


List of the configurations transferred with the clustering protocol:


	proxy.config.http.global_user_agent_header
	proxy.config.http.cache.ignore_accept_mismatch
	proxy.config.http.cache.ignore_accept_language_mismatch
	proxy.config.http.cache.ignore_accept_encoding_mismatch
	proxy.config.http.cache.ignore_accept_charset_mismatch
	proxy.config.http.cache.enable_default_vary_headers
	proxy.config.http.cache.vary_default_text
	proxy.config.http.cache.vary_default_images
	proxy.config.http.cache.vary_default_other


I suspect that several of these can be made overridable if we go ahead and implement TS-1919 (i.e. remove this from clustering).