Caching progress report
azez at ufomechanic.net
Fri Oct 12 15:44:42 GMT 2007
The proof of concept file caching for Samba4 cifs proxy backend is
working quite well.
The issuing of per-share configurable read-aheads reduces latency and
therefore file-load times by 25% in some real cases.
it's main use (as it stands) is for high bandwidth high latency links
where it can save:
(file_size / block_count) * latency
I need a couple of things to make the proof of concept "decent".
Currently I make the cache filename based on the share, filename and
SAMBA PID (and delete the cache when the file closes) but I think it
could be based on the backend share, backend user and filename - as
different users could get different files.... - so then maybe the cache
can have some persitence.
The road ahead
I still need to monitor and request oplocks so I know when I do/don't
need to revalidate the cache.
The cache is currently a file that only grows linearly, but will become
a tree of blocks, each block with it's own cache state; and using
librsync against a similar tree at a remote proxy to quickly revalidate
files and fill in the gaps.
Once I get the hang of git I will be able to post a git tree.
More information about the samba-technical