Random enhancement idea: instead of storing both the compressed and uncompressed versions of certain files, why not store only the compressed version, and then lazily decompress and cache it when the uncompressed version is requested? This way the decompression overhead is only paid once on the first request for each file. You could also have an option to "prime" the cache during start-up, decompressing all of the compressed files into memory.
Random enhancement idea: instead of storing both the compressed and uncompressed versions of certain files, why not store only the compressed version, and then lazily decompress and cache it when the uncompressed version is requested? This way the decompression overhead is only paid once on the first request for each file. You could also have an option to "prime" the cache during start-up, decompressing all of the compressed files into memory.