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).