Information

 

Common principles:

  • Client-side only (does not requires any server-side configuration)
  • Possible to work above any filesystem (with corresponding engine)
  • read-only (yet)

Use cases

1: mobile clients

Example: we have some mobile client (notebook/linux smartphone), which ofter travels between private networks and use some network file resources (e.g. via smb). Sometimes we need to get file from one network while we are on other. But this is not possible because of security policy. CAFS partially fixes this problem by caching. When client using files cafs works as a proxy with cache, and when above filesystem goes offline, cafs switches to offline use and makes possible to read cached files.

2: Clients with slow and/or unstable connection

E.g. Wi-Fi, Dial-up, GPRS. CAFS works like http proxy, but for files. If connection terminates, cafs goes to offline mode, and tries to reconnect after N seconds.

3: highload

CAFS might be a good solution for high loaded web services (as a filesystem for serving static files from frontend).

Implementation

CAFS is fuse filesystem written in Python 2.4+

Requirements

  • python 2.4
  • fuse 2.7 или 2.5
  • pyFuse
  • paramiko for sftp

Implemented features:

  • sftp support
  • automatic online/offline switching
  • cache cleaning

Known problems:

  • low performance (main reason: dumb cache)
  • poor cache cleaning
  • statfs call not implemented

Post new comment

The content of this field is kept private and will not be shown publicly.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.

User login

Syndicate

Syndicate content