[Varnish] #385: Pluggable cache engines

Varnish varnish-bugs at projects.linpro.no
Sat Nov 22 08:51:43 CET 2008


#385: Pluggable cache engines
-------------------------+--------------------------------------------------
 Reporter:  eugaia       |       Owner:  phk  
     Type:  enhancement  |      Status:  new  
 Priority:  lowest       |   Milestone:       
Component:  varnishd     |     Version:  trunk
 Severity:  minor        |    Keywords:       
-------------------------+--------------------------------------------------
 Has anyone thought about the idea of pluggable cache engines, in the same
 way that MySQL (5.1+) has pluggable storage engines?

 The idea I have is for you to be able to choose a caching engine as part
 of the settings in VCL, so that you could use the current method (i.e.
 virtual memory file, hashing, buckets etc), or another method.

 One other possible type of engine I've thought of (and will be
 implementing using the C{ }C inclusion method in VCL - a fantastically
 good idea btw) is to use a MySQL storage plugin which opens up a high-
 speed socket to a cache file table.  The code that I'll include in the VCL
 would then access that socket to retrieve / write cache data.

 There might be particular advantages of this method of storing cache data,
 e.g. persistence, ability to access the cache files via a database,
 scalability, clustering etc.  Other caching engines/protocols could be
 developed, perhaps based on specific needs, and an 'ideal' solution might
 involve more than one caching engine.

 By opening up the caching engine, and by having a setting like:

 engine cache1 {
   .type = MyCache;
   .socket = "/tmp/mycache.sock";
 }

 set req.engine = cache1;

 it would facilitate such a feature and would (I believe) be a valuable
 addition to the architecture of Varnish.

-- 
Ticket URL: <http://varnish.projects.linpro.no/ticket/385>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator


More information about the varnish-bugs mailing list