John Ericson
6f0a95897c
Revert "Fix hard linking issue causing overlay fs copy-ups"
...
This reverts commit 9ef0a9e8aa
.
Master now has a better solution.
2023-10-25 14:20:40 -04:00
John Ericson
4f5b01f5cd
Start to document the local-overlay store
2023-08-03 12:10:13 -04:00
John Ericson
6b297e5895
Make verifyAllValidPaths
more functional
...
return map rather than mutate one passed in by reference
2023-08-02 14:38:22 -04:00
Ben Radford
6a8de4c9dc
Avoid enumerating entire overlay store dir upfront.
...
As an optimisation for LocalStore, we read all the store directory entries into
a set. Checking for membership of this set is much faster than a stat syscall.
However for LocalOverlayStore, the lower store directory is expected to contain
a vast number of entries and reading them all can take a very long time.
So instead of enumerating them all upfront, we call pathExists as needed. This
means making stat syscalls for each store path, but the upper layer is expected
to be relatively small compared to the lower store so that should be okay.
2023-08-01 12:48:02 +01:00
John Ericson
621bdbdb31
Merge branch 'overlayfs-store' into delete
2023-07-26 12:01:08 -04:00
Ben Radford
c2d54496a0
Forgot to check flag and early out.
2023-07-26 16:01:20 +01:00
Ben Radford
5744a500d6
Use debug instead of writing directly to stderr.
2023-07-26 16:01:20 +01:00
Ben Radford
ed14286924
Invoke remount-hook program when necessary.
2023-07-26 16:01:20 +01:00
Ben Radford
33ebae75ca
Reuse deletion logic for optimiseStore and rename method.
2023-07-26 16:01:20 +01:00
Ben Radford
11c493f8fa
Avoid creating whiteout for duplicate store paths.
2023-07-26 16:01:20 +01:00
John Ericson
07b34edc44
Fix deletion test
...
Lower layer references are ignored for deleting just in the upper layer.
2023-07-25 18:09:02 -04:00
John Ericson
9ef0a9e8aa
Fix hard linking issue causing overlay fs copy-ups
2023-07-25 10:28:11 -04:00
John Ericson
73a55e4005
Merge remote-tracking branch 'layered-store/overlayfs-store' into gc
2023-07-25 09:48:06 -04:00
Ben Radford
497464f494
Extend verify test to check that repair is supported.
2023-07-25 13:33:37 +01:00
John Ericson
0e595a52a3
Remove trailing whitespace
2023-07-24 15:39:59 -04:00
Ben Radford
8ddbcb736a
Implement overlay store deduplication.
2023-07-20 10:42:39 +01:00
Ben Radford
614efc1240
Add test for store optimise path deduplication.
2023-07-20 10:42:39 +01:00
Ben Radford
d5cd74a401
Override verifyStore to always pass NoRepair for LocalOverlayStore.
2023-07-20 10:42:39 +01:00
Ben Radford
ee1241da86
Remove unnecessary overrides of add methods.
2023-06-06 12:21:17 +01:00
Ben Radford
8a9baa0a30
More sensible to have deleteGCPath in LocalStore.
2023-06-06 12:21:17 +01:00
Ben Radford
a48acfd684
Skip deletion of lower paths for overlay store GC.
2023-06-06 12:21:17 +01:00
Ben Radford
b0989cb10b
Support percent encoded URIs for lower store.
2023-05-15 17:34:31 +01:00
Ben Radford
b5591ece4c
Check that overlay store directory is mounted correctly.
...
Nix does not manage the overlayfs mount point itself, but the correct
functioning of the overlay store does depend on this mount point being set up
correctly. Rather than just assume this is the case, check that the lowerdir
and upperdir options are what we expect them to be. This check is on by
default, but can be disabled if needed.
2023-05-15 17:34:31 +01:00
John Ericson
4173743a3c
Implement more queries
2023-05-09 17:20:58 -04:00
John Ericson
5059be53b1
Fix recursive ingestion from lower store
2023-05-09 16:42:28 -04:00
John Ericson
e7c3399ed2
Specialize LocalOverlayStore::queryPathFromHashPart
...
With test
2023-05-09 10:40:10 -04:00
John Ericson
ddaf2750b5
Specialize more methods, fix tests
2023-05-09 10:22:38 -04:00
John Ericson
b3d320c594
Convert more methods
...
Fixed one test, broke another
2023-05-08 18:50:16 -04:00
John Ericson
59a8099038
Fix LocalOverlayStore::queryPathInfoUncached
, FIXME in test
2023-05-08 17:37:40 -04:00
John Ericson
5406256d78
Specialize LocalOverlayStore::queryPathInfoUncached
2023-05-08 17:30:17 -04:00
John Ericson
31e98ed0a0
Specialize LocalOverlayStore::registerDrvOutput
2023-05-08 16:48:55 -04:00
John Ericson
f0a176e2f1
Init local overlay store
2023-05-08 10:20:06 -04:00