Commit graph

220 commits

Author SHA1 Message Date
Aaron Schulz
1f48d8e193 Added ObjectCache::getMainWANInstance() helper method
Change-Id: I3d8d93b3bb6f7e06fae7adc694e6d4d851b2d8c2
2015-04-27 14:28:43 -07:00
Aaron Schulz
c7bf955bca Moved WAN cache and relayer to /libs
Change-Id: I9586d22890ce1cda7f74869ff701de73d65eaaef
2015-04-27 12:35:58 -07:00
Aaron Schulz
3a1f8b1111 Added WANObjectCache class
This class handles caching across distance sites where purges
must reach both. It also aims to make purging more reliable in
the face of network glitches and node consistent hash ejection.

bug: T88492
Change-Id: I686811b3075bf22e2f4de45127e8461e54648ead
2015-04-23 21:36:42 +00:00
Aaron Schulz
cbe67ce13b Make RedisBagOStuff support tag name hashing
Bug: T95126
Change-Id: I266dd30c93cfc44395eba5bca64f451ca77c23a4
2015-04-07 07:12:10 +00:00
Bryan Davis
1195e11a8a Move MWLogger classes to MediaWiki\Logger namespace
Move the MWLogger PSR-3 logging related classes into the
MediaWiki\Logger namespace. Create shim classes to ease migration of
existing MWLoggerFactory usage to the namespaced classes.

Bug: T93406
Change-Id: I359cc81fbd2dcf8937742311dcc7d3dee08747b0
2015-04-03 11:32:24 -07:00
Aaron Schulz
b48f51c522 Minor doc fixes
Change-Id: I80678e64cafcfd6e2c779452f466d8a630089568
2015-03-09 23:08:37 -07:00
Aaron Schulz
61df5e785f Made SqlBagOStuff avoid tripping TransactionProfiler
* Set a custom profiler with no expectations to avoid tripping
  the "0 write" expection. This avoids useless log entries.

Change-Id: Iac849a729eb36b1a8affb0dbc8b8c195fab4b03a
2015-02-27 17:45:48 +00:00
jenkins-bot
087e70d6d2 Merge "Start moving objectcache into libs/" 2015-02-25 16:04:49 +00:00
Kunal Mehta
1e3888de00 Start moving objectcache into libs/
The base BagOStuff class and some of the implementations are
not dependent on MediaWiki and can be in the libs folder.

Change-Id: I299f9abb778abc65a70461a2aff3015c02a1f04d
2015-02-25 00:22:50 -08:00
Aaron Schulz
0a873a3c28 Avoid calling rollback() in handleWriteError() if there is no trx
Change-Id: Ic3be89151160ad57acda5d95e3995a77f3835717
2015-02-24 11:34:23 -08:00
jenkins-bot
8256db3493 Merge "Removed cas() from ReplicatedBagOStuff as it is unused" 2015-02-23 19:21:39 +00:00
aude
e653640924 Make HashBagOStuff::lock() compatible with BagOStuff::lock
Fixes php strict standard error.

Bug: T90427
Change-Id: Ica2bddead9b5ad367510e898eeea1257a53b5b19
2015-02-23 12:35:55 +01:00
Aaron Schulz
40bfb9bfa0 Removed cas() from ReplicatedBagOStuff as it is unused
Change-Id: I2ff33ba806856ec4cc140a52590a922e13191bf2
2015-02-22 21:38:30 -08:00
jenkins-bot
e2e2fff1eb Merge "Made BagOStuff::cas properly optional" 2015-02-23 05:32:38 +00:00
Aaron Schulz
250f2b9e5a Made BagOStuff::cas properly optional
* merge() using the locking version by default. The callers that implement cas()
  override merge() to use the cas-based version. Those that do not no longer
  need to define the unused dummy method.
* Removed some redundant doc blocks.

Change-Id: I49f7dd5432efa8d76f4758c273f0859376ddafb7
2015-02-23 05:15:24 +00:00
Aaron Schulz
3817818aca Add a ReplicatedBagOStuff class
Bug: T88634
Change-Id: I1f7cccd6ac376055ff2b84641ff38a85571c65b0
2015-02-23 05:09:08 +00:00
jenkins-bot
014615d926 Merge "Made BagOStuff::debug protected" 2015-02-12 17:17:30 +00:00
Aaron Schulz
fd2c11c24b Made BagOStuff::merge() take any callable
Change-Id: I5ce99b8d343f1629f888a3b7594976a83839e2b7
2015-02-11 12:20:41 -08:00
Aaron Schulz
61697bab1e Made BagOStuff::cas protected, which is just one merge() implementation
Change-Id: I3ef82226231f7e03f7493ae042cad22339f4c869
2015-02-10 10:38:41 -08:00
Aaron Schulz
532ef7851c Avoiding writing sessions for no reason
bug: T88635
Change-Id: I4afaecd8dc29390b1ee2a6a77f9ca0cba333ef92
2015-02-10 18:14:02 +00:00
Aaron Schulz
ac8d6b3538 Removed old SqlBagOStuff alias
Change-Id: I6fdd8791713ce9ed67473065332266c217284974
2015-02-06 02:03:04 -08:00
jenkins-bot
2da34d0a9c Merge "Removed unused and poorly supported time argument to BagOStuff::delete" 2015-02-05 02:28:01 +00:00
Aaron Schulz
659ebf050d Made BagOStuff::debug protected
Change-Id: Ic05961e49e30d2537b411030b2b891adcc29a29e
2015-02-02 03:57:37 +00:00
Kunal Mehta
ed90263776 objectcache: Use Psr\Log\LoggerInterface instead of wfDebug
ObjectCache::newFromParams() will handle a 'loggroup' parameter
specially, getting an instance of \Psr\Log\LoggerInterface to
pass to the BagsOStuff.

BagOStuff implementations can use $this->logger which will be
an implementation of \Psr\Log\LoggerInterface. As this is set in
BagOStuff::__construct(), all subclasses must now call the
parent constructor.

The goal of this is to make the logging in BagOStuff non-MediaWiki
specific, in the hopes of separating it out into a separate library
in the future.

Change-Id: I8a8e278e6f028814499d8457d6d5341d03eabc7a
2015-01-30 22:03:23 +00:00
Aaron Schulz
13d1a86eef Removed unused and poorly supported time argument to BagOStuff::delete
Change-Id: I8f90f480ec8bc70605c85c39f73f29df21d1927d
2015-01-26 17:14:33 -08:00
Aaron Schulz
24c970667e Tweaked BagOStuff::lock() retry times slightly to be faster
Change-Id: Id04e373dcd2ed57951b68432fcd7491f4288b028
2015-01-14 11:54:38 -08:00
Brad Jorsch
1128c8d56f Allow CACHE_NONE as a fallback for ObjectCache::newAccelerator
Test for null specifically rather than falsiness,
because CACHE_NONE is 0.

Bug: T86162
Change-Id: I98b9da42c6a5fd6cdf721cdbd5473a5e959581b8
2015-01-08 12:58:17 +00:00
Chad Horohoe
aa21e125a3 Remove obvious function-level profiling
Xhprof generates this data now. Custom profiling of various
sub-function units are kept.

Calls to profiler represented about 3% of page execution
time on Special:BlankPage (1.5% in/out); after this change
it's down to about 0.98% of page execution time.

Change-Id: Id9a1dc9d8f80bbd52e42226b724a1e1213d07af7
2015-01-07 11:14:24 -08:00
Reedy
4d9143c7f5 Add lots of @throws
Change-Id: I09d0c13070f966fcf23d2638d8fc1328279a5995
2014-12-24 13:49:20 +00:00
jenkins-bot
b0dcb13e9b Merge "Made $timeout in BagOStuff::lock() actually work" 2014-11-20 09:39:41 +00:00
Aaron Schulz
1fa3a4d678 Unbreak lock()/unlock() for MemcachedPhpBagOStuff
Change-Id: I49ce96b65fe6a6e2cba86a990962fe4efc43bbb8
2014-11-20 01:25:38 -08:00
Aaron Schulz
19f3068ce5 Made $timeout in BagOStuff::lock() actually work
* Also added a separate $expiry option for things that take a long time

Change-Id: Ie5f81dea031f3c3f3ca8d61ad4cb322a5b876f61
2014-11-20 00:26:44 -08:00
Kunal Mehta
dd8fef31e7 ObjectCacheSessionHandler::getCache() returns BagOStuff
Change-Id: I7f514857154297c7033dd26af97b6ac83c13f104
2014-11-13 12:53:50 -08:00
Sergio Santoro
807b24eb27 SqlBagOStuff: reuse code of parent class
It'll be easier to change the time threshold (currently 10 years)
in the future.

Change-Id: I24005148d40c47905d5b20cfd506decef2ae447e
2014-10-25 19:26:21 +02:00
Sergio Santoro
4c79d2e7e4 SqlBagOStuff: fix percentage in deleteObjectsExpiringBefore()
Partial deletion percentage progess was computed using
$remainingSeconds. This is incorrect since $remainingSeconds
is going to *decrease* ( instead of increase ) while the
process continues.
The correct implementation uses 'processed seconds' instead.

Change-Id: Ic745f6e8375a85da543de36703fad6d31f62ea90
2014-10-16 20:43:38 +02:00
Sergio Santoro
9ae3d27ef0 SqlBagOStuff: document public method deleteAll()
Change-Id: I23700714453b6243e564642f2bad4a2d1c2469c6
2014-10-15 22:57:53 +02:00
Reedy
f3ae6fa6cc Fix expires typo in comment
Change-Id: I4bb63f610ce0ec246c4aa7aef3d04f096fb3e564
2014-10-08 16:55:52 +01:00
Tim Starling
9f0d40e08f HashBagOStuff: use the value itself as the CAS token
Avoid an unnecessary serialize() call on get() requests, which makes it
faster and also happens to work around a nasty crash bug which is
causing lots of segfaults right now.

CAS semantics should be the same, if the caller handles a CAS token in
an opaque way and does not assume it is a string. I could only find one
caller of cas() in core and WMF deployed extensions, and that is
BagOStuff::mergeViaCas(), which does correctly handle CAS tokens of any
type.

Bug: 71724
Change-Id: I0b0b5f0157c005ec7f76210dfb8576c056314733
2014-10-07 16:29:57 +11:00
Aaron Schulz
330e18c45d Removed MultiWriteBagOStuff::replace
Change-Id: Ifa6373cda099d1b87e90592598267987e9185a25
2014-09-12 11:13:06 -07:00
Aaron Schulz
9d59d4088e Removed deprecated BagOStuff::replace() method
Change-Id: Ife2f8e0f10ad7be76b79d5aee435491ea78d4655
2014-09-12 02:03:32 -07:00
Aaron Schulz
eaf2f36483 Make sure getMulti() returns an array per the class interface
Change-Id: Ic08f3ac37467a2743d7f8be5f5fb0032f84c3b82
2014-09-03 20:17:28 +00:00
umherirrender
63dc5abc9a Fixed spacing
- Added space after reserved words: function, foreach, if
- Combined 'else if' into elseif
- Added braces to one-line statements
- Added spaces after comma, before parentheses

Change-Id: Ie5bbf680d6fbe0f0872dab2700c16b1394906a72
2014-08-27 18:31:50 +02:00
Bryan Davis
d7c8c3446d Ensure that expiry times are given as integers
Fixes "Fatal error: Argument 4 passed to Memcached::cas() must be an
instance of int, float given".

Change-Id: Ibf1ea638ec1a4dcf009cdaea8aa66008c74ff30b
2014-08-22 09:55:59 -06:00
addshore
dfd4c8c2a2 Use public instead of var in classes
Change-Id: I16d1714ba37667d8c9c7c79a765c7199ea0023e4
2014-08-17 21:07:37 +01:00
umherirrender
3b2b6a2773 Add missing @param to function docs
Change-Id: I47fa96a976f55a1a93cb75397285edb8c7f4cd8a
2014-08-14 20:22:52 +02:00
jenkins-bot
088a8bd2b4 Merge "Revert "Made LCStoreDB try to use a separate DB connection"" 2014-08-13 21:01:36 +00:00
umherirrender
21e0c1c533 Correct variable names in @param to match method declarations
Some @param have a typo in the variable name,
some @param's were in wrong order.

Change-Id: Ie25806831027112b398f6f4a909c59147ac3a5fa
2014-08-13 21:48:28 +02:00
C. Scott Ananian
9c0fff5a4b Revert "Made LCStoreDB try to use a separate DB connection"
This commit broke `php tests/parserTests.php`.

This reverts commit 4c0871fa0e.

Bug: 69082
Change-Id: If0781f8f51681717a848ec359c7b8c70932ed72d
2014-08-03 17:40:03 -04:00
jenkins-bot
627e33ed36 Merge "Cleanup some docs (includes/[m-r])" 2014-07-25 17:14:53 +00:00
jenkins-bot
9fc8b2228e Merge "Check for boolean false result from database query in SqlBagOStuff" 2014-07-25 01:31:55 +00:00