File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ Catfs is a caching filesystem written in Rust.
77Catfs allows you to have cached access to another (possibily remote)
88filesystem. Caching semantic is read-ahead and write-through (see
99[ Current Status] ( #current-status ) ). Currently it only provides a data
10- cache.
10+ cache and all metadata operations hit the source filesystem .
1111
1212Catfs is ALPHA software. Don't use this if you value your data.
1313
@@ -35,6 +35,17 @@ $ catfs <from> <to> <mountpoint>
3535Catfs will expose files in ` <from> ` under ` <mountpoint> ` , and cache
3636them to ` <to> ` as they are accessed.
3737
38+ # Benchmark
39+
40+ Compare running catfs with two local directories on the same
41+ filesystem with direct access. This is not a realistic use case but
42+ should give you an idea of the worst case slowdown.
43+
44+ ![ Benchmark result] ( /bench/bench.png?raw=true " Benchmark ")
45+
46+ Write is twice as slow as expected since we are writing twice the
47+ amount. However it's not clear why ` ls ` is so slow.
48+
3849# License
3950
4051Copyright (C) 2017 Ka-Hing Cheung
Original file line number Diff line number Diff line change 1+ create_files 0.061
2+ rm_files 0.078
3+ create_files 0.044
4+ rm_files 0.093
5+ create_files 0.043
6+ rm_files 0.095
7+ create_files 0.062
8+ rm_files 0.093
9+ create_files 0.057
10+ rm_files 0.151
11+ create_files 0.049
12+ rm_files 0.097
13+ create_files 0.051
14+ rm_files 0.124
15+ create_files 0.064
16+ rm_files 0.093
17+ create_files 0.047
18+ rm_files 0.099
19+ create_files 0.044
20+ rm_files 0.091
21+ create_files_parallel 0.052
22+ rm_files_parallel 0.076
23+ create_files_parallel 0.049
24+ rm_files_parallel 0.048
25+ create_files_parallel 0.038
26+ rm_files_parallel 0.053
27+ create_files_parallel 0.060
28+ rm_files_parallel 0.052
29+ create_files_parallel 0.064
30+ rm_files_parallel 0.052
31+ create_files_parallel 0.046
32+ rm_files_parallel 0.062
33+ create_files_parallel 0.054
34+ rm_files_parallel 0.079
35+ create_files_parallel 0.060
36+ rm_files_parallel 0.058
37+ create_files_parallel 0.057
38+ rm_files_parallel 0.082
39+ create_files_parallel 0.063
40+ rm_files_parallel 0.054
41+ write_md5 10.257
42+ read_md5 2.175
43+ read_first_byte 0.012
44+ write_md5 8.854
45+ read_md5 2.164
46+ read_first_byte 1.253
47+ write_md5 9.548
48+ read_md5 2.200
49+ read_first_byte 1.241
50+ write_md5 8.711
51+ read_md5 2.205
52+ read_first_byte 1.056
53+ write_md5 8.129
54+ read_md5 2.165
55+ read_first_byte 0.009
56+ write_md5 10.159
57+ read_md5 2.194
58+ read_first_byte 1.004
59+ write_md5 8.396
60+ read_md5 2.169
61+ read_first_byte 0.007
62+ write_md5 9.489
63+ read_md5 2.162
64+ read_first_byte 0.680
65+ write_md5 8.230
66+ read_md5 2.174
67+ read_first_byte 0.545
68+ write_md5 8.152
69+ read_md5 2.147
70+ read_first_byte 2.135
71+ ls_files 0.083
72+ ls_files 0.054
73+ ls_files 0.073
74+ ls_files 0.069
75+ ls_files 0.060
76+ ls_files 0.057
77+ ls_files 0.055
78+ ls_files 0.080
79+ ls_files 0.080
80+ ls_files 0.070
Original file line number Diff line number Diff line change 1+ #operation,time
2+ Create 100 files 0.0522 0.043 0.064 0.0199 0.017 0.023
3+ Unlink 100 files 0.0958888888889 0.078 0.124 0.0857777777778 0.078 0.093
4+ Create 100 files (parallel) 0.0561111111111 0.046 0.064 0.0411111111111 0.039 0.046
5+ Unlink 100 files (parallel) 0.0616 0.048 0.082 0.0488888888889 0.041 0.055
6+ ls with 1000 files 0.0681 0.054 0.083 0.0232222222222 0.022 0.025
7+ Write 1GB 8.9925 8.129 10.257 4.9699 4.395 5.813
8+ Read 1GB 2.1755 2.147 2.205 2.21633333333 2.149 2.292
9+ Time to 1st byte 0.645222222222 0.007 1.253 0.004 0.003 0.005
Original file line number Diff line number Diff line change 1+ create_files 0.021
2+ rm_files 0.084
3+ create_files 0.020
4+ rm_files 0.080
5+ create_files 0.017
6+ rm_files 0.078
7+ create_files 0.019
8+ rm_files 0.127
9+ create_files 0.022
10+ rm_files 0.088
11+ create_files 0.017
12+ rm_files 0.088
13+ create_files 0.020
14+ rm_files 0.085
15+ create_files 0.021
16+ rm_files 0.093
17+ create_files 0.023
18+ rm_files 0.083
19+ create_files 0.019
20+ rm_files 0.093
21+ create_files_parallel 0.039
22+ rm_files_parallel 0.051
23+ create_files_parallel 0.040
24+ rm_files_parallel 0.041
25+ create_files_parallel 0.024
26+ rm_files_parallel 0.049
27+ create_files_parallel 0.040
28+ rm_files_parallel 0.050
29+ create_files_parallel 0.046
30+ rm_files_parallel 0.048
31+ create_files_parallel 0.040
32+ rm_files_parallel 0.049
33+ create_files_parallel 0.041
34+ rm_files_parallel 0.055
35+ create_files_parallel 0.040
36+ rm_files_parallel 0.049
37+ create_files_parallel 0.040
38+ rm_files_parallel 0.048
39+ create_files_parallel 0.044
40+ rm_files_parallel 0.059
41+ write_md5 4.950
42+ read_md5 2.256
43+ read_first_byte 0.010
44+ write_md5 4.566
45+ read_md5 2.264
46+ read_first_byte 0.004
47+ write_md5 5.370
48+ read_md5 2.360
49+ read_first_byte 0.004
50+ write_md5 5.813
51+ read_md5 2.189
52+ read_first_byte 0.003
53+ write_md5 4.557
54+ read_md5 2.230
55+ read_first_byte 0.003
56+ write_md5 4.603
57+ read_md5 2.206
58+ read_first_byte 0.005
59+ write_md5 4.911
60+ read_md5 2.193
61+ read_first_byte 0.004
62+ write_md5 5.745
63+ read_md5 2.168
64+ read_first_byte 0.003
65+ write_md5 4.395
66+ read_md5 2.149
67+ read_first_byte 0.005
68+ write_md5 4.789
69+ read_md5 2.292
70+ read_first_byte 0.005
71+ ls_files 0.028
72+ ls_files 0.022
73+ ls_files 0.023
74+ ls_files 0.023
75+ ls_files 0.024
76+ ls_files 0.025
77+ ls_files 0.023
78+ ls_files 0.023
79+ ls_files 0.023
80+ ls_files 0.023
You can’t perform that action at this time.
0 commit comments