This is useful when the timestamps to be checked depend on the value or are stored
in the database rather than as check keys.
Change-Id: I81ab08a943ee7d2f96a132d371965501941ed37f
Adds MD5 hashing to the generation of keys for WinCache. This
fixes the issue of keys (e.g. sub-headings) longer than 150
characters.
Bug: T210794
Change-Id: Ieabf6b014a0660198077a23760a05564bf268535
Also add headings to separate docs for deployment/administration,
from docs for developers using an existing instance of it.
Change-Id: Id43c7700564c2979549afa5379f644027fb6585b
This can be used to discard all values before a certain point in
time, such as periods of severe network problems or misconfiguration
that resulted in missed purges.
Change-Id: I612db8f91a5960b912e9f35645a3d3872df47460
This lets backends that support CAS take advantage of it.
Also fix race condition with merge() in asyncWrites mode where two
threads might add to a list/set but the first request finishes after
the second, which would erase an item during the set().
Bug: T198239
Change-Id: Ibd2539429746f12b4de74d0f031089cb80aa8b4b
Interpret "1 attempt" as non-blocking and use 3 seconds otherwise
(instead of 6 seconds). This means that the WAN cache merge call
does not block.
Bug: T198239
Change-Id: Ieb194a949f18785c2cc9dd20fdc4d2e3fed51abf
Proxy to the "master"/"write" cache object method. This is similar to the
approach taken in MultiWriteBagOStuff
Bug: T198279
Change-Id: If0933246b7ef4fc07ebeec4c3c9625b1137dbe05
* Provide a sensible default for the HTTP timeout, and make it configurable.
* Also make HTTP proxy and caBundlePath configurable.
* Pass through the logger object to the HTTP client, as in EtcdConfig.
* Do not treat a 404 response code for DELETE or 204 for PUT as errors. The
doc comment already said that delete() should return true if the item
was not found.
Change-Id: I6a90a25339c3a433381a5300c8c7c1a644e2a10f
This will usually let one distinguish asynchronous preemptive cache refreshes
from synchronous value recomputations due to actual cache misses.
Change-Id: I3424a89cc96a12fe283460eeaf722ee0cf299534
The get() $cas_token parameter was changed into $flags, which can act
as a switch to make the return value an associative array of details.
pecl and PHP-based memcached BagOStuff class both pass all tests now.
Bug: T196125
Change-Id: I4678250331a48db4d50d1fc6c489c991a4dee920
* Provide a default lock-based BagOStuff::cas implementation
* Make RedisBagOStuff::merge() use mergeViaCas()
* Use the raw unserialized string as the redis CAS token to
avoid any bad interaction with __wakeup() methods changing
field values every time
* Make RedisBagOStuff::incr() return false when there is no
such key, not null
* Rewrite merge() test to make the order of write/cas phase
of the parent and child merge() calls well defined instead
of arbitrary usleep() calls
* Avoid cache key reuse in test runs
Change-Id: I388ec173cf3858bb2fc7a8c8a00cda68703074ce
Find: /isset\(\s*([^()]+?)\s*\)\s*\?\s*\1\s*:\s*/
Replace with: '\1 ?? '
(Everywhere except includes/PHPVersionCheck.php)
(Then, manually fix some line length and indentation issues)
Then manually reviewed the replacements for cases where confusing
operator precedence would result in incorrect results
(fixing those in I478db046a1cc162c6767003ce45c9b56270f3372).
Change-Id: I33b421c8cb11cdd4ce896488c9ff5313f03a38cf