1 |
On Fri, Oct 22, 2021 at 8:39 AM Miles Malone |
2 |
<m.malone@××××××××××××××××××.net> wrote: |
3 |
> |
4 |
> small files... (Certainly dont quote me here, but wasnt JFS the king |
5 |
> of that back in the day? I cant quite recall) |
6 |
> |
7 |
|
8 |
It is lightning fast on lizardfs due to garbage collection, but |
9 |
metadata on lizardfs is expensive, requiring RAM on the master server |
10 |
for every inode. I'd never use it for lots of small files. |
11 |
|
12 |
My lizardfs master is using 609MiB for 1,111,394 files (the bulk of |
13 |
which are in snapshots, which create records for every file inside, so |
14 |
if you snapshot 100k files you end up with 200k files). Figure 1kB |
15 |
per file to be safe. Not a big deal if you're storing large files |
16 |
(which is what I'm mostly doing). Performance isn't eye-popping |
17 |
either - I have no idea how well it would work for something like a |
18 |
build system where IOPS matters. For bulk storage of big stuff though |
19 |
it is spectacular, and scales very well. |
20 |
|
21 |
Cephfs also uses delayed deletion. I have no idea how well it |
22 |
performs, or what the cost of metadata is, though I suspect it is a |
23 |
lot smarter about RAM requirements on the metadata server. Well, |
24 |
maybe, at least in the past it wasn't all that smart about RAM |
25 |
requirements on the object storage daemons. I'd seriously look at it |
26 |
if doing anything new. |
27 |
|
28 |
Distributed filesystems tend to be garbage collected simply due to |
29 |
latency. There are data integrity benefits to synchronous writes, but |
30 |
there is rarely much benefit on blocking on delections, so why do it? |
31 |
These filesystems already need all kinds of synchronization |
32 |
capabilities due to node failures, so syncing deletions is just a |
33 |
logical design. |
34 |
|
35 |
For conventional filesystems a log-based filesystem is naturally |
36 |
garbage-collected, but those can have their own issues. |
37 |
|
38 |
-- |
39 |
Rich |