more thoughts

This commit is contained in:
Joey Hess 2019-10-08 11:39:12 -04:00
parent 350bb456c0
commit 08bf984921
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 42 additions and 0 deletions

View file

@ -0,0 +1,25 @@
[[!comment format=mdwn
username="joey"
subject="""comment 10"""
date="2019-10-08T15:25:05Z"
content="""
It might be possible to isolate the sameas changes only to things
involving the location log. Use different uuids for sameas
remotes. When updating the location log, substitute the sameas uuid.
There would need to be a sameas-aware way to check if a uuid is in the
location log. Currently, loggedLocations is used to both see what remotes
to try to get a key from, and for numcopies checking and related stuff
(like skipping dropping entirely when loggedLocations does not have enough
items in it). So there would need to be two variants of it. That seems
likely to be a source of mistakes.
Another small problem with this idea is that a special remote may record
its uuid somehow in the data store and check that it has the right uuid
later (S3 does this with an "annex-uuid" in the bucket), and if two remotes
with different uuids did that, there would be a conflict between them.
Also, it couldn't only be the location log; sameas mapping would also need
to be done when using the chunk log. And a bit of encryption config
inheritance would still be needed.
"""]]

View file

@ -0,0 +1,17 @@
[[!comment format=mdwn
username="joey"
subject="""comment 9"""
date="2019-10-08T15:17:06Z"
content="""
Per-remote state is an added complication. A sameas remote should not
use the same per-remote state, because what's stored in it is up to the
remote backend and would conflict.
So Logs.RemoteState would need to use something other than a UUID,
which contains the underlying uuid of the sameas remote. (Logs.MetaData too for
per-remote metadata.) That would have to be passed in when constructing the
remote.
And, `git-annex forget` would need to be made to remote the per-remote state of
sameas remotes that point to a dead uuid.
"""]]