While BagOStuff supports the storing of large values (>1mb) in memcached using WRITE_ALLOW_SEGMENTS, the WANObjectCache class does not support it yet. Since the preprocessor text was changed to use WANCache, large wiki pages will not benefit from caching since the cache writes will fail. The preprocessor cache is useful for expanding templates during parser cache misses (e.g. on edit or for users with non-standard preferences).
An example of large parser output entries was found during unrelated debug log entries for RefreshLinksJob failures at T307133.
We should:
- Add a "segmentable" option to WANCache that uses WRITE_ALLOW_SEGMENTS
- Use the new "segmentable" option in SqlBlobStore (which uses WANCache already)
- Make PreprocessorHash use JSON again (like before de6eeead21f9cdb1bffa3f1b5877f71d03529722)
- Use the new "segmentable" option in PreprocessorHash
I also noticed that PageEditStash can no longer segment values (since 91043c8fe8521216be365898eb7f5f06c495dd00), I'll spin that off as another task.