Skip to content

Commit 86bedcc

Browse files
Chris ConstantineChris Constantine
Chris Constantine
authored and
Chris Constantine
committed
More details in the readme
1 parent dfb788f commit 86bedcc

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

README.md

+48
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ CacheFS
22
=======
33
Caching your files so you don't have to.
44

5+
Project Status
6+
--------------
7+
This is very early code.
8+
9+
I've done some testing, and it appears to not corrupt your files. It's very far from feature complete, and I wouldn't trust it for important files.
10+
511
Quick Start (Ubuntu)
612
-----------
713
Install libfuse2 and python bindings
@@ -19,3 +25,45 @@ Start caching
1925

2026
Thats it!
2127

28+
Usage
29+
-----
30+
cachefs.py <mount> -o target=<slow drive>,cache=<fast drive>
31+
32+
mount: The directory you want to mount cachefs to. Interacting with files in this directory after mounting a volume will use cachefs.
33+
34+
target: This is the volume or directory you wish to cache.
35+
36+
cache: This optional argument specifies where you wish the cache to be stored. If it is not specified a place will be created for you in your home directory.
37+
38+
39+
Why
40+
----
41+
Storage is typically either fast and small (SSD), fastish and large-ish (Spinning Disks), or very large and very slow (s3fs, sshfs, etc). Computers use caching to keep frequently used data closer to the CPU, and have for decades. The goal with CacheFS is to use the same principles that make RAM appear as fast as L2 to a CPU and make large/slow volumes appear as fast as small/fast volumes.
42+
43+
What
44+
----
45+
CacheFS is a FUSE file system that acts as a local mirror for files on a large/slow drive. Running under the assumption that bigger disks are slower, it attempts to keep a copy of your file data on a small/fast disk, without losing the drive capacity of the large/slow disk.
46+
47+
This is not a [dropbox][http://www.dropbox.com] replacement. I love dropbox and use it frequently. The ultimate goal is to have a volume that has unlimited storage capacity (say, s3fs) that acts as fast as your local drive. It could also help with laptops that have tiny SSDs and an external drive. With the addition of an offline mode you could have access to the files on your external drive while away from home if they happen to be cached.
48+
49+
You could theoreticaly use this to create a hierarchy of volumes from a ramdrive through an SSD, Spinning disk, and cloud storage. I'm not sure that this would gain you anything, but it sounds cool!
50+
51+
To Be Implemented
52+
------------------
53+
There is currently no way to specify how much space on the small/fast disk to use. If the small disk runs out of space you are SOL.
54+
55+
The time to complete write operations (or any fs modifications) is the time it takes to modify both the slow disk and the fast disk.
56+
57+
There is no dashboard or other way to look into the health/status of a cachefs mountpoint.
58+
59+
Little/no multi-user safety. If multiple people use cachefs to cache the same files, it is not guaranteed that changes made by one person will percolate to the other person.
60+
61+
No offline mode.
62+
63+
64+
Limitations
65+
-----------
66+
CacheFS (as implemented with python-fuse) will never be as fast as your small/fast disk. The goal is to be significantly faster than the large/slow disk.
67+
68+
FUSE will probably never be ported to Windows, so CacheFS will probably never work in windows. I have not been able to get it to work in MacOS X, but I haven't tried very hard.
69+

0 commit comments

Comments
 (0)