diff --git a/doc/todo/support_multiple_special_remotes_with_same_uuid/comment_10_c40d002cdc478321dc93c3a02a9bcf17._comment b/doc/todo/support_multiple_special_remotes_with_same_uuid/comment_10_c40d002cdc478321dc93c3a02a9bcf17._comment new file mode 100644 index 0000000000..db201dc7b8 --- /dev/null +++ b/doc/todo/support_multiple_special_remotes_with_same_uuid/comment_10_c40d002cdc478321dc93c3a02a9bcf17._comment @@ -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. +"""]] diff --git a/doc/todo/support_multiple_special_remotes_with_same_uuid/comment_9_5a47567bdc63b2a8fa080b438bb3f79a._comment b/doc/todo/support_multiple_special_remotes_with_same_uuid/comment_9_5a47567bdc63b2a8fa080b438bb3f79a._comment new file mode 100644 index 0000000000..2aac333716 --- /dev/null +++ b/doc/todo/support_multiple_special_remotes_with_same_uuid/comment_9_5a47567bdc63b2a8fa080b438bb3f79a._comment @@ -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. +"""]]