objectcache: add object segmentation support to BagOStuff
authorAaron Schulz <aschulz@wikimedia.org>
Fri, 8 Mar 2019 01:53:39 +0000 (17:53 -0800)
committerAaron Schulz <aschulz@wikimedia.org>
Tue, 11 Jun 2019 15:14:17 +0000 (16:14 +0100)
commitb09b3980f991bb02a64cce0e462b97bada3b4776
tree9e34e7641b4053699ecb551cfd976fa7b1ae8f2c
parent408b0fbb6001423b1f26729872ba80c04b215f9a
objectcache: add object segmentation support to BagOStuff

Use it for ApiStashEdit so that large PaserOutput can be stored.

Add flag to allow for value segmentation on set() in BagOStuff.
Also add a flag for immediate deletion of segments on delete().

BagOStuff now has base serialize()/unserialize() methods.

Bug: T204742
Change-Id: I0667a02612526d8ddfd91d5de48b6faa78bd1ab5
21 files changed:
autoload.php
includes/Storage/PageEditStash.php
includes/libs/objectcache/APCBagOStuff.php
includes/libs/objectcache/APCUBagOStuff.php
includes/libs/objectcache/BagOStuff.php
includes/libs/objectcache/EmptyBagOStuff.php
includes/libs/objectcache/HashBagOStuff.php
includes/libs/objectcache/MemcachedBagOStuff.php
includes/libs/objectcache/MemcachedClient.php
includes/libs/objectcache/MemcachedPeclBagOStuff.php
includes/libs/objectcache/MemcachedPhpBagOStuff.php
includes/libs/objectcache/MultiWriteBagOStuff.php
includes/libs/objectcache/RESTBagOStuff.php
includes/libs/objectcache/RedisBagOStuff.php
includes/libs/objectcache/ReplicatedBagOStuff.php
includes/libs/objectcache/WinCacheBagOStuff.php
includes/libs/objectcache/serialized/SerializedValueContainer.php [new file with mode: 0644]
includes/objectcache/SqlBagOStuff.php
tests/phpunit/includes/api/ApiStashEditTest.php
tests/phpunit/includes/libs/objectcache/BagOStuffTest.php
tests/phpunit/includes/objectcache/MemcachedBagOStuffTest.php