2
2
mirror of https://github.com/octoleo/restic.git synced 2024-11-22 12:55:18 +00:00
restic/internal/fuse
greatroar 189e0fe5a9 fuse: Better inode generation
Hard links to the same file now get the same inode within the FUSE
mount. Also, inode generation is faster and, more importantly, no longer
allocates.

Benchmarked on Linux/amd64. Old means the benchmark with

        sink = fs.GenerateDynamicInode(1, sub.node.Name)

instead of calling inodeFromNode. Results:

name                   old time/op    new time/op    delta
Inode/no_hard_links-8     137ns ± 4%      34ns ± 1%   -75.20%  (p=0.000 n=10+10)
Inode/hard_link-8        33.6ns ± 1%     9.5ns ± 0%   -71.82%  (p=0.000 n=9+8)

name                   old alloc/op   new alloc/op   delta
Inode/no_hard_links-8     48.0B ± 0%      0.0B       -100.00%  (p=0.000 n=10+10)
Inode/hard_link-8         0.00B          0.00B           ~     (all equal)

name                   old allocs/op  new allocs/op  delta
Inode/no_hard_links-8      1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
Inode/hard_link-8          0.00           0.00           ~     (all equal)
2022-11-16 08:35:01 +01:00
..
dir.go fuse: Better inode generation 2022-11-16 08:35:01 +01:00
file.go fuse: remove unused context parameter 2022-08-26 20:48:48 +02:00
fuse_test.go fuse: Better inode generation 2022-11-16 08:35:01 +01:00
inode.go fuse: Better inode generation 2022-11-16 08:35:01 +01:00
link.go fuse: remove unused context parameter 2022-08-26 20:48:48 +02:00
other.go fuse: remove unused context parameter 2022-08-26 20:48:48 +02:00
root.go mount: Fix parent inode used by snapshots dir 2022-08-07 13:03:32 +02:00
snapshots_dir.go fuse: Better inode generation 2022-11-16 08:35:01 +01:00
snapshots_dirstruct_test.go mount: Map slashes in tags to underscores 2022-08-19 18:17:57 +02:00
snapshots_dirstruct.go restic: Rework error handling of FindFilteredSnapshots and handle snapshotIDs 2022-10-15 13:31:26 +02:00