more thoughts
This commit is contained in:
parent
350bb456c0
commit
08bf984921
2 changed files with 42 additions and 0 deletions
|
@ -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.
|
||||||
|
"""]]
|
|
@ -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.
|
||||||
|
"""]]
|
Loading…
Add table
Add a link
Reference in a new issue