Caching progress report

Amin Azez 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

seconds.

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.

Any comments?

Once I get the hang of git I will be able to post a git tree.

Sam



More information about the samba-technical mailing list