]> git.ipfire.org Git - thirdparty/squid.git/commit
Bug 4579: cannot hit an entry being written by another worker (#183) M-staged-PR183
authorEduard Bagdasaryan <eduard.bagdasaryan@measurement-factory.com>
Wed, 27 Jun 2018 03:50:42 +0000 (03:50 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Wed, 27 Jun 2018 07:09:03 +0000 (07:09 +0000)
commit749bc8fba77299e004d15291a179261c9c9341d8
tree7828c33b6c2b203bf5b73748ee67af2cca7cc328
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