An interesting commit is now available in PHP 7.0.2+; it provides access to zlib's manual dictionary functionality.
What's interesting about being able to inject a dictionary is removing the dictionary overhead of compression from individual items by using a shared one. This is ideal when you're storing data that both (1) isn't large enough to be reliably smaller when storing an ad hoc dictionary alongside the compressed data but (2) has enough duplication that compression sans dictionary will yield significant footprint savings.
Cache and serialized items stored in a database (or similar) are ideal for this: - It's easier to scale PHP process pools than the primary DB server. - Cache item size is a common bottleneck with the DB. - Serialized items in a table tend to have patterns that would benefit from a shared dictionary. - It actually may be cheaper even from PHP's perspective to inflate/deflate than handle more data over the wire. - Some items, like forms and views, can be over a megabyte in their uncompressed forms.
The only real challenge is picking the dictionary and, if it changes, providing versioning. However, even generating and shipping a static (but decent) dictionary per cache bin (or for serialized form data) would massively reduce storage, memory, and network overhead.
Should there be updates to a dictionary, it's possible to detect a mismatch and try an older dictionary. zlib will let you know there's an adler32 mismatch between the dictionary needed and the dictionary supplied.
Recent comments
We can no longer add contrib projects in the Tugboat sandboxes that we use for core PR's? Can this be fixed or is there a reason for this? We can add contrib projects to demo...
Apr 25th Weekly Meetings
The Mail System and MimeMail modules are now installed. I'll let you know if they solve the problem. Edit: Using Mail System with MimeMail I was able to send plain text emails. There is...
HTML Email treated as plain text
If you haven't already I recommend installing Mail System and MimeMail. The latter will help format emails as HTML and first helps with configuring which module will handle the formatting...
HTML Email treated as plain text