]> git.ipfire.org Git - thirdparty/squid.git/commit
Bug 4579: cannot hit an entry being written by another worker (#183)
authorEduard Bagdasaryan <eduard.bagdasaryan@measurement-factory.com>
Thu, 28 Jun 2018 08:34:01 +0000 (08:34 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Thu, 28 Jun 2018 10:35:22 +0000 (10:35 +0000)
commitdaed75a9b22a96d5e3cfcfa8616cbc5ef63f4ca9
treea52c647e49458ae7fb39126e4a62ba5afd035f71
parent4a544c9d535f48998ac8eacb840f86770f56079a
Bug 4579: cannot hit an entry being written by another worker (#183)

... and addressed XXX in 4310f8b commit.

This change disassociates Transients from collapsed forwarding, enabling
it for SMP caching configurations. Before this change, SMP Squid worker
could not read an entry being written by another worker. Besides
unexpected misses, there could be another (worse) negative effect: The
reader worker could get stuck because it did not get updates via
the Transients mechanism.

Also deprecate the collapsed_forwarding_shared_entries_limit directive
name in favor of shared_transient_entries_limit.

Also removed top-level Storage::smpAware() because memory cache SMP
awareness is determined by configuration and is now computed before we
create the memory cache Storage object. This ability to assess SMP
awareness earlier helps decide whether to create Transients segments.

Also eliminated code duplication in a couple of MemStoreRr methods.
18 files changed:
src/Makefile.am
src/MemStore.cc
src/MemStore.h
src/SquidConfig.h
src/Transients.cc
src/Transients.h
src/cf.data.pre
src/client_side_reply.cc
src/store.cc
src/store/Controller.cc
src/store/Controller.h
src/store/Disk.h
src/store/Disks.cc
src/store/Disks.h
src/store/Storage.h
src/tests/TestSwapDir.h
src/tests/stub_MemStore.cc
src/tests/stub_store.cc