wiki.techinc.nl/tests/phpunit/includes/libs/objectcache
Aaron Schulz 85bc62c5a8 objectcache: add "coalesceKeys" option to WANObjectCache for key grouping
This is useful for grouping related keys on the same servers to reduce
the need for cache server connections and availability. A cache key that
uses "lockTSE" can already involve accessing several keys during the
read/write cache-aside paths:
a) The value key itself
b) The check key (named after the main key, a common pattern)
c) The mutex key (used if the value looks stale)
d) The cool-off key (used if regeneration took a while)

Any problems accessing the first two could cause extra value regenerations.
Problems with the mutex key could lead to stampedes due to threads assuming
another thread was regerating a soon-to-expire value when, in fact, none was.
A similar problem could happen with cool-off keys, with threads assuming
that another saved the newly regenerated value when, in fact, none did.

The use of hash stops puts the tiny related keys on the same server as the
main cache key that they serve. This is only for hash-based routing, and not
route prefix routing (e.g. All*Route still sends the key to multiple child
routes, but the PoolRoute/HashRoute function will hash differently).

The option is not enabled by default yet.

Change-Id: I37e92a88f356ef1e2a2b7728263040e2f6f09a13
2020-02-06 20:27:08 +00:00
..
BagOStuffTest.php Manual fix of the remaining assertInternalType & Co. 2019-12-15 00:20:10 +00:00
CachedBagOStuffTest.php Coding style: Auto-fix MediaWiki.Usage.PHPUnit* 2020-01-10 10:17:12 +00:00
HashBagOStuffTest.php Fixes for PHPUnit 8 compatibility 2019-12-10 17:02:06 +00:00
MultiWriteBagOStuffTest.php tests: Add explicit return type void to setUp() and tearDown() 2019-10-30 14:31:22 -07:00
WANObjectCacheTest.php objectcache: add "coalesceKeys" option to WANObjectCache for key grouping 2020-02-06 20:27:08 +00:00