Commit graph

67 commits

Author SHA1 Message Date
saper
646a9490f7 (bug 27283) SqlBagOStuff breaks PostgreSQL txns
* SqlBagOStuff should not turn off automatic transaction
    control just like that. Keep previous
    connection for PostgreSQL and SQLite

* 94633ff448 introduced
    rollback on error to restore sanity
    for the connection. Don't do this
    if you are in the middle of INSERT IGNORE
    and we have a savepoint open.

    Making sure query syntax errors don't
    get silenced by our "wonderful" implementation
    of INSERT IGNORE is bug 35572.

Change-Id: I841b03895e1189c47307fefb1516c4c7c4102e25
2012-06-14 23:33:11 +02:00
Aaron
396be409e2 Fixed pecl memcached client in persistent mode.
* When using a persistend ID in the constructor, the object is effectively shared among
  the callers using that ID. If we always use __CLASS__, then this breaks when different
  BagOStuffs may be used. Instead, a hash of the settings is now used.
  See http://www.php.net/manual/en/memcached.construct.php.
* Don't keep adding servers to the pool, as the object is shared among callers. Once one thread
  initializes the object, it will already be initialized by the next thread. Calling addSever()
  again will cause an increasing number of duplicate servers to exist in the data structure, and
  thus an increasing number of socket connections over time.
* Also, use addServers() instead of multiple addServer() calls per
  http://www.php.net/manual/en/memcached.addserver.php.

Change-Id: I0e7510320cb79d9f152e8958ddd50400fa9da37f
2012-06-13 18:19:33 -07:00
Mark A. Hershberger
99fdc6e838 Bug 24985 use $wgTmpDirectory when available
We had two way to get a temporary directory:

 - $wgTempDirectory: more or less stable accross sessions
 - wfTempDir(): set through environnement variable and could potentially
   vary from a session to another one thanks to tempnam()

This patch makes wfTempDir() to always use the global $wgTempDirectory
first when it is available. Thus explicitly overriding tempnam() or any
environnement variable such as TMP or TEMP.

Hence, people who don't have access to a system wide directory
specificed by their environnement (such as /tmp) can specify an
alternative straight from the MediaWiki configuration.

The patch remove references to $wgTmpDirectory and replace them with
calls to wfTempDir().  Make wfTempDir() use $wgTmpDirectory first.

The default setting of $wgTmpDirectory was removed in favor of having it
initialized through Setup.php by calling wfTempDir.

Note: this may also address Bug 36475 - Generating thumbnails does not
work when there is no access to /tmp

Change-Id: Ifdc79e9c5d95f978025b237a5eeb95fd75092f46
2012-06-13 21:30:22 +02:00
awjrichards
c29fd59775 Big oops - merged to wrong branch.
Revert "Revert to arbitrarily old point before initial remote branch creation to help clean up"

This reverts commit ee0d3d330f
2012-06-05 22:58:54 +00:00
awjrichards
ee0d3d330f Revert to arbitrarily old point before initial remote branch creation to help clean up
Change-Id: I41a3d1e55d3ea9dffa42451237fe065f9334361d
2012-06-02 08:43:04 -07:00
Aaron Schulz
3c1495e968 Made default BagOStuff functions work consistently.
* Made getMulti() only return keys for items that exists.
* Made add() return false if the item already exist.
* Made replace() return false it the item does not already exist.

Change-Id: Idb9d9843ace0c81f71abfc22b90e30eb33d7579d
2012-06-03 16:29:39 -07:00
Alexandre Emsenhuber
3bbda787b8 Added missing GPLv2 headers in some places.
Also made file/class documentation more consistent.

Change-Id: Ic1ba00472ef62fa4fd746f8f590fe694d490ecd9
2012-05-20 17:56:43 +02:00
Aaron Schulz
6a460ed446 Renamed new BagOStuff getBatch() function to getMulti() for consistency.
Change-Id: Icfe673919f65192565aa114c165c90d97d33785a
2012-05-15 01:48:22 -07:00
Tim Starling
d3fd5db207 Minor PECL client fixes
* Fixed the check for igbinary presence. It's not enough for the
  extension to be loaded, the memcached extension also needs to be
  compiled with --enable-memcached-igbinary.
* When delete() is attempted on a key that doesn't exist, return true,
  as in the other BagOStuff implementations.

Change-Id: I298952f4a9925d860fa5673f632d073b1f20aa47
2012-05-15 14:13:58 +10:00
Tim Starling
3c62077fe2 Implemented a wrapper for the memcached PECL client
* Introduced a common base class for the two memcached clients, called
  MemcachedBagOStuff.
* Moved the expiry time normalisation from MemcachedClient.php to
  MemcachedBagOStuff since libmemcached needs the same workaround.

Change-Id: I507d4ec5a7fd863ae64a94f2c453981f9f03746c
2012-05-15 10:19:41 +10:00
Brion VIBBER
78a58988d4 Merge "Optimized SqlBagOStuff::getBatch() a bit." 2012-05-08 20:30:55 +00:00
Alexandre Emsenhuber
d7f3f6be14 Added missing GPLv2 headers in some places.
Also made file/class documentation more consistent.

Change-Id: Ib21f42166ae0841e04c8af4fdcf59c0fa06f1738
2012-05-02 10:51:15 +02:00
Aaron Schulz
253f8ff6a0 Optimized SqlBagOStuff::getBatch() a bit.
Change-Id: I046ce9e1156071233077296b66071fcc0876719c
2012-04-28 14:15:26 -07:00
Aaron
bb5e589600 Made delete() return True for NOT_FOUND memcached responses.
Change-Id: Ia1ec62721a3e42dd7a5bd21974e922d500d3f501
2012-04-27 16:41:20 -07:00
Aaron
a763553077 Improved BagOStuff documentation and made some return value tweaks.
Change-Id: I9d8f09c10ccc5e710bd8cae05b8f3da3c2d02056
2012-04-26 18:34:32 -07:00
Aaron Schulz
8019ebda16 Added getBatch() function to BagOStuff and optimized it for memcached.
Change-Id: Id8a3ed1ac7b22db7f7bf58ffde4be3285e8e2df9
2012-04-21 11:07:18 -07:00
Antoine Musso
ad240ebc22 group memcached debug logs
When enabling memcached debug logs ($wgMemCachedDebug), they are
unconditionally sent to the main $wgDebugLogFile.  This patch make it
possible to sent thoses specific log to an alternate file by setting
$wgDebugLogGroups['memcached']

Change-Id: I85d8ab92471ce3c31f8168dae83fe91e95e18dce
2012-04-19 15:50:44 +02:00
Sam Reed
c27fbf5330 Trim trailing whitespace
Add/improve documentation

Explicitly define a few variables

Change-Id: If0017770a0a47f8f6be178b5bde8ae6691f74b6a
2012-03-21 15:47:05 -07:00
Roan Kattouw
311200ee2c Revert r114067, r114071, r114075, r114079, r114081, r114082, r114084, r114086, r114088, r114089, r114101, r114118, r114137, r114147, r114164, r114172, r114175, r114180, r114208, r114209, r114215, r114219, r114226, r114321, r114322.
This reverts the SpecialCachedPage and formatDuration sagas, with some collateral damage here and there. All of these revisions are tagged with 'gerritmigration' and will be resubmitted into Gerrit after the Gerrit switchover. See also http://lists.wikimedia.org/pipermail/wikitech-l/2012-March/059124.html
2012-03-20 23:03:59 +00:00
Sam Reed
a2dc33a5a3 Trim trailing whitespace
Add/improve documentation

Explicitly define a few variables
2012-03-17 22:52:54 +00:00
Krinkle
ff2cc27e16 [ObjectCache.php] typo from r112985 2012-03-08 03:19:51 +00:00
Krinkle
5985cc9da7 [ObjectCache.php] Add comment describing that CACHE_ANYTHING will use whatever is configured on the wiki for $wgMainCacheType etc., and that if those are set to CACHE_NONE (which it is by default) then CACHE_ANYTHING is CACHE_DB. 2012-03-04 22:53:05 +00:00
Alexandre Emsenhuber
61a88f8c18 Pass __METHOD__ to DatabaseBase::begin(), DatabaseBase::commit() and DatabaseBase::rollback() 2012-02-26 17:19:11 +00:00
Sam Reed
2ec09c5165 More return documentation 2012-02-09 21:35:05 +00:00
Sam Reed
0a626db6e1 Fixing some of the "@return true" or "@return false", need to be "@return bool" and then the metadata can say true if foo, false if bar
Other documentation improvements
2012-02-09 19:29:36 +00:00
Sam Reed
f3cc77aaee Fixing some of the "@return true" or "@return false", need to be "@return bool" and then the metadata can say true if foo, false if bar
Other documentation improvements
2012-02-09 17:41:50 +00:00
Alexandre Emsenhuber
1a49741c20 Pass __METHOD__ to DatabaseBase::begin() and DatabaseBase::commit() 2012-01-17 11:38:00 +00:00
Antoine Musso
f874649556 (bug 32853) DBA cache broken in MW 1.18
DBABagOStuff was not refactored by r83140 which pass BagOStuff constructors
an array. This patch honor the 'dir' parameter to let you override the global
$wgTmpDirectory.

Need backport in REL1_18
2011-12-07 11:04:11 +00:00
Tim Starling
53d267b3dc purgeParserCache.php improvements:
* Do queries in batches of 100 rows instead of all at once. Note that if there are a lot of objects with the exact same expiry time, it might take multiple runs of the script to delete them all.
* Progress meter.
2011-12-02 02:59:11 +00:00
Chad Horohoe
de20376cc1 (bug 29747) eAccelerator shared memory caching has been removed since it is now disabled by default and is buggy. APC, XCache and WinCache are not affected.
As Brion points out in <https://bugzilla.wikimedia.org/show_bug.cgi?id=29747#c7>, the shared memory functions are very buggy. In fact, eAccelerator has disabled the shared memory functions by default for awhile now. I didn't touch APC, XCache or WinCache, but I imagine they suffer from the same problems.
2011-11-22 22:56:00 +00:00
Sam Reed
dd6062e75e Bug 13759 - memcached predefined hashes
Patch by Zac Bristow

Half of the patch was already applied. Updated documentation to match
2011-11-19 20:01:33 +00:00
Mark A. Hershberger
037f754c4a eol w/s 2011-11-03 13:58:29 +00:00
Mark A. Hershberger
d9537b113e Meant to include these: feed the OCD: eol w/s 2011-11-01 18:32:05 +00:00
Mark A. Hershberger
58a53f643e feed the OCD: eol w/s 2011-11-01 18:31:38 +00:00
Platonides
cccbb916b0 Parse error (missing ';') in r99938. 2011-10-16 19:53:30 +00:00
Sam Reed
9ceb44a598 Fixup some assignments in conditionals
Add/normalise some more return statements
2011-10-16 03:27:12 +00:00
Roan Kattouw
f8024445dd Per Domas, reinstate <1e9 check that was dropped in r94199. Also document what these checks are all about in more detail. 2011-10-06 14:07:57 +00:00
Aaron Schulz
a6999018e5 Added lock/unlock function stubs. Fixes:
PHP fatal error in /usr/local/apache/common-local/php-1.18/includes/objectcache/MemcachedPhpBagOStuff.php line 91: 
Call to undefined method MemCachedClientforWiki::lock()
2011-09-21 20:25:58 +00:00
Tim Starling
cac02778e4 * Added a script to reduce disk space on a MySQL parser cache setup such as the one at Wikimedia at the moment, by removing all objects which expire before a given time.
* Fixed unintentional shortcut evaluation in MultiWriteBagOStuff::doWrite(). It would have caused writes to be skipped on the second cache if the first cache failed, now writes should be attempted on all caches.
2011-09-09 03:51:45 +00:00
Roan Kattouw
e877e8f5e0 Merge r93797 to trunk, in a somewhat modified form: clamp expiries for memcached to 30 days, higher values give trouble apparently 2011-08-10 21:15:57 +00:00
Brion Vibber
53ab456ebf * (bug 30131) XCache with variable caching disabled no longer used for variable caching (CACHE_ACCEL)
Patch from John Du Hart: https://bugzilla.wikimedia.org/attachment.cgi?id=8849&action=diff

If XCache is present, but the xcache.var_size setting is off, we'll now consider it as xcache being disabled for CACHE_ACCEL purposes. It won't trigger view of the accelerator option in the installer, and at runtime if using CACHE_ACCEL and no other modules are available, it'll throw an error so you know that it doesn't work!
2011-07-31 01:52:38 +00:00
Alexandre Emsenhuber
cda248c53a Removed usage of error suppression operator 2011-07-06 16:29:27 +00:00
Tim Starling
9f4064540e Allow SqlBagOStuff data to be split over many tables, to avoid lock contention performance issues on servers with a high write load. See http://bugs.mysql.com/bug.php?id=61735 and http://bugs.mysql.com/bug.php?id=61736 . 2011-07-04 12:01:10 +00:00
Chad Horohoe
1187d3eeec Revert r87145, bug 28752: Xcache doesn't work in cli mode. As pointed out on CR, this didn't fix it, it just hid the issue. 2011-06-08 00:53:56 +00:00
Sam Reed
051198ce45 Followup r83140, fix undefined $id 2011-05-29 14:28:01 +00:00
Sam Reed
ba2c3a793d And even more documentation in various files 2011-05-29 14:25:20 +00:00
Sam Reed
4065e65d03 Even more documentation in various files 2011-05-29 14:24:27 +00:00
Sam Reed
296f3d3f4f And even more documentation 2011-05-28 18:59:42 +00:00
Sam Reed
3614ecfffb And more documentation. Yaaaay 2011-05-28 17:18:50 +00:00
Sam Reed
ba0cbdeeff More parameter documentation!! 2011-05-28 15:59:57 +00:00