This commit is contained in:
Joey Hess 2024-06-27 12:57:08 -04:00
parent dbfff04fb6
commit 8e322f76bc
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 23 additions and 3 deletions

View file

@ -191,3 +191,14 @@ served by the current gateway.
Notice that remotes for cluster nodes have names indicating the path through
the cluster used to access them. For example, "AMS-NYC-node3" is accessed via
the AMS gateway, which then relays to NYC where node3 is located.
## cluster topologies
Clusters can be constructed with any number of gateways, and any internal
topology of connections between gateways.
There must always be a path from any gateway to all nodes of the cluster.
It's best to avoid there being multiple paths to a node that go via
different gateways, since all paths will be tried in parallel when eg,
uploading a key to the cluster.

View file

@ -29,11 +29,23 @@ For June's work on [[design/passthrough_proxy]], remaining todos:
* Since proxying to special remotes is not supported yet, and won't be for
the first release, make it fail in a reasonable way.
* Proxying for special remotes.
* Encryption and chunking. See design for issues.
* Getting a key from a cluster currently always selects the lowest cost
remote, and always the same remote if cost is the same. Should
round-robin amoung remotes, and prefer to avoid using remotes that
other git-annex processes are currently using.
* When a cluster has multiple gateways, and a key is uploaded via one
gateway, that gateway learns about every node where the key is stored.
But other gateways do not, they only learn about nodes reached via them
where the key is stored. This means that another user, syncing with
the other gateway, won't know how many copies exist, or necessarily
that the key is in the cluster at all. Should gateways broadcast
location change messages to other gateways?
* Optimise proxy speed. See design for ideas.
* Use `sendfile()` to avoid data copying overhead when
@ -41,8 +53,6 @@ For June's work on [[design/passthrough_proxy]], remaining todos:
Library to use:
<https://hackage.haskell.org/package/hsyscall-0.4/docs/System-Syscall.html>
* Encryption and chunking. See design for issues.
* Indirect uploads (to be considered). See design.
* Support using a proxy when its url is a P2P address.
@ -51,7 +61,6 @@ For June's work on [[design/passthrough_proxy]], remaining todos:
* `viconfig` support for setting preferred content, group,
and description of clusters
# completed items for June's work on [[design/passthrough_proxy]]:
* UUID discovery via git-annex branch. Add a log file listing UUIDs