I still believe that simplifying the cache at the client side to a Squid-style simple directory tree based on UUID would do more to resolve cache problems any any complex algorithm.