One of the goals for this quarter (Q4 2015-16) was to more-fully evaluate the difficulties for converting cache_text and cache_upload, and decide which we'd like to tackle next. The summary output of those evaluations is:
- cache_text unique difficulties
- Several applayer backends that may differ on behaviors for compatibility (MW/hhvm, restbase, cxserver, citoid)
- In general, traffic is much more general-case: lots of distinct kinds of cacheability, conditional responses, etc.
- geoip support - requires updating/writing new C-in-VCL or evaluating existing geoip2 vmods or writing a new one
- Analytics here is much more important than any other cluster, and so far we've seen a pattern that our varnish4 analytics issues have an ongoing long-tail of bugfixing that's not complete yet.
- One backend to deal with for now (swift), with one kind of cacheability behavior.
- Support for large objects in combination with streaming and Range is a somewhat unique problem to solve, but it seems likely varnish4 supports these things much better than varnish3 did in general. Some minor open questions about whether all of our old patched/plus functionality on these matters exists in varnish4, but again seems likely.
On the balance of these things, we selected cache_upload as the next target, to complete conversion during Q1 2016-17.