[squid-users] TCP_MISS/304 question

Alex Rousskov rousskov at measurement-factory.com
Thu Oct 13 20:48:52 UTC 2016


On 10/13/2016 01:44 PM, Yuri Voinov wrote:

> However, this is nothing more than word games, Alex. 

... unless the definition of a hit affects your billing or your
interpretation of Squid documentation or the developer interpretation of
the code. Definitions matter! You yourself have seen their importance
when you showed your excellent byte hit ratio results but folks were
looking at the ordinary document hit ratio numbers instead.


> The question is -
> can we more or less significant differences from known what hit proxy
> code level and / or transactions which, obviously, on the proxy level,
> we can see in its entirety.

Sorry, I do not understand the question.


>> Unfortunately, there are too many definitions of a "hit".

> There is no many definitions of hit. We are talking about the caching
> proxy, which is basically no different from all the other caches, and
> subject to the same rules.

You are oversimplifying a complex subject matter. If Squid delivers a
single response comprising 1000 bytes from the cache and 10 bytes from
the origin server, is that a hit or a miss? If Squid delivers the entire
response from the cache but spends 10 minutes talking to the origin
server about that object first, is that a hit or a miss? Different
people will give you different answers to those questions.

We have [poorly defined] byte hits, document hits, revalidation hits,
stale hits, partial hits, etc., etc.


> If the first access does not find an object in the cache, it requests
> from the network,

yes

> saves in the cache,

or does not

> and re-treatment or gets a hit,

or does not

> "the object is not changed." Dot.

or the Squid-cached object did not change but the client-cached object
did. Or vice versa.


> If the time in the cache
> object lifetime expires, or a lifetime on the server timed out - the
> object is requested again and a miss is recorded.

* Yes, if you define a miss as "contact with the origin server".
* No, if contact with the origin server is OK for a hit as long as the
server does not send the response _body_ back to Squid.


> if
> the proxy responds to the client "has not changed", it means, in fact,
> that the client has a copy of the object

Yes.

> and a copy of the proxy object,

The copy in the proxy cache may be different from the copy in the client
cache or may not exist at all.


> the proxy and responds to the client, performing REFRESH that the object
> did not change. What is this, if not hit?

Assuming the proxy asked the origin server whether the object in the
client (or the proxy, depending on the circumstances) cache is fresh,
for many, it is

* a [document] miss (because there was a potentially very slow contact
with the origin server) or
* a [byte] hit (because the response body came from the Squid cache and
not from the origin server).

Resisting the existence of different valid hit definitions is futile
IMO. State what _your_ definition is (be as precise as possible; this
may require several iterations) and then you may ask whether a
particular transaction is a hit.

Alex.


More information about the squid-users mailing list