git-annex.git
2 years ago(no commit message)
adehnert [Sun, 21 Jul 2024 18:14:03 +0000 (18:14 +0000)]

2 years agoAdded a comment
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92 [Sun, 21 Jul 2024 12:38:12 +0000 (12:38 +0000)]
Added a comment

2 years agoAdded a comment: `git annex sync --ff-only`
adehnert [Sun, 21 Jul 2024 01:04:44 +0000 (01:04 +0000)]
Added a comment: `git annex sync --ff-only`

2 years agoAdded a comment: Also Serveo.net
nobodyinperson [Fri, 19 Jul 2024 15:21:19 +0000 (15:21 +0000)]
Added a comment: Also Serveo.net

2 years agoAdded a comment
kdm9 [Fri, 19 Jul 2024 13:11:05 +0000 (13:11 +0000)]
Added a comment

2 years ago(no commit message)
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92 [Fri, 19 Jul 2024 12:12:56 +0000 (12:12 +0000)]

2 years agoAdded a comment
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92 [Fri, 19 Jul 2024 08:26:31 +0000 (08:26 +0000)]
Added a comment

2 years agoAdded a comment
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92 [Wed, 17 Jul 2024 14:07:32 +0000 (14:07 +0000)]
Added a comment

2 years agoreporting FTBFS on windows
yarikoptic [Tue, 16 Jul 2024 15:58:50 +0000 (15:58 +0000)]
reporting FTBFS on windows

2 years ago(no commit message)
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92 [Tue, 16 Jul 2024 15:42:54 +0000 (15:42 +0000)]

2 years ago(no commit message)
mih [Tue, 16 Jul 2024 15:02:46 +0000 (15:02 +0000)]

2 years agoAdded a comment
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92 [Tue, 16 Jul 2024 09:21:54 +0000 (09:21 +0000)]
Added a comment

2 years agoAdded a comment
nobodyinperson [Mon, 15 Jul 2024 18:32:36 +0000 (18:32 +0000)]
Added a comment

2 years agoAdded a comment
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92 [Mon, 15 Jul 2024 15:18:28 +0000 (15:18 +0000)]
Added a comment

2 years ago(no commit message)
m.risse@77eac2c22d673d5f10305c0bade738ad74055f92 [Mon, 15 Jul 2024 14:57:26 +0000 (14:57 +0000)]

2 years agoAdded a comment
xentac [Fri, 12 Jul 2024 23:49:33 +0000 (23:49 +0000)]
Added a comment

2 years ago(no commit message)
xentac [Fri, 12 Jul 2024 23:37:36 +0000 (23:37 +0000)]

2 years ago(no commit message)
ashton@37fa3fec6d2eef022a3491c85362a34141fbf0db [Fri, 12 Jul 2024 08:11:56 +0000 (08:11 +0000)]

2 years ago(no commit message)
ashton@37fa3fec6d2eef022a3491c85362a34141fbf0db [Fri, 12 Jul 2024 08:11:30 +0000 (08:11 +0000)]

2 years ago(no commit message)
ashton@37fa3fec6d2eef022a3491c85362a34141fbf0db [Fri, 12 Jul 2024 08:08:22 +0000 (08:08 +0000)]

2 years ago(no commit message)
benjamin.poldrack@d09ccff6d42dd20277610b59867cf7462927b8e3 [Thu, 11 Jul 2024 07:47:27 +0000 (07:47 +0000)]

2 years ago(no commit message)
benjamin.poldrack@d09ccff6d42dd20277610b59867cf7462927b8e3 [Thu, 11 Jul 2024 07:23:30 +0000 (07:23 +0000)]

2 years agoinitial report from boox installation
yarikoptic [Tue, 9 Jul 2024 02:44:51 +0000 (02:44 +0000)]
initial report from boox installation

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 5 Jul 2024 19:37:43 +0000 (15:37 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agofinalizing HTTP P2p protocol some more
Joey Hess [Fri, 5 Jul 2024 19:34:58 +0000 (15:34 -0400)]
finalizing HTTP P2p protocol some more

Added v2-v0 endpoints. These are tedious, but will be needed in order to
use the HTTP protocol to proxy to repositories with older git-annex,
where git-annex-shell will be speaking an older version of the protocol.

Changed GET to use 422 when the content is not present. 404 is needed to
detect when a protocol version is not supported.

2 years agofinalizing HTTP P2P protocol
Joey Hess [Fri, 5 Jul 2024 19:00:05 +0000 (15:00 -0400)]
finalizing HTTP P2P protocol

Managed to avoid netstrings. Actually, using netstrings while streaming
lazy ByteString turns out to be very difficult. So instead, have a
header that specifies the expected amount of data, and then it can just
arrange to send a different amount of data if it needs to indicate
INVALID.

Also improved the interface for GET of a key.

2 years agouse netstrings for framing binary data with json at the end
Joey Hess [Fri, 5 Jul 2024 15:53:03 +0000 (11:53 -0400)]
use netstrings for framing binary data with json at the end

This will be easy to implement with servant. It's also very efficient,
and fairly future-proof. Eg, could add another frame with other data.

This does make it a bit harder to use this protocol, but netstrings
probably take about 5 minutes to implement? Let's see...

import Text.Read
import Data.List

toNetString :: String -> String
toNetString s = show (length s) ++ ":" ++ s ++ ","

nextNetString :: String -> Maybe (String, String)
nextNetString s = case break (== ':') s of
        ([], _) -> Nothing
        (sn, rest) -> do
                n <- readMaybe sn
                let (v, rest') = splitAt n (drop 1 rest)
                return (v, drop 1 rest')

Ok, well, that took about 10 minutes ;-)

2 years agothoughts on CGI, and use json
Joey Hess [Fri, 5 Jul 2024 14:08:43 +0000 (10:08 -0400)]
thoughts on CGI, and use json

2 years agoAdded a comment
git-annex@4a0625db6ced1ac00744697d5bac41393bcde646 [Fri, 5 Jul 2024 10:22:46 +0000 (10:22 +0000)]
Added a comment

2 years agoupdate
Joey Hess [Thu, 4 Jul 2024 19:26:05 +0000 (15:26 -0400)]
update

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 4 Jul 2024 19:18:17 +0000 (15:18 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoupdate
Joey Hess [Thu, 4 Jul 2024 19:18:06 +0000 (15:18 -0400)]
update

2 years agoREMOVE-BEFORE and GETTIMESTAMP proxying
Joey Hess [Thu, 4 Jul 2024 19:08:33 +0000 (15:08 -0400)]
REMOVE-BEFORE and GETTIMESTAMP proxying

For clusters, the timestamps have to be translated, since each node can
have its own idea about what time it is. To translate a timestamp, the
proxy remembers what time it asked the node for a timestamp in
GETTIMESTAMP, and applies the delta as an offset in REMOVE-BEFORE.

This does mean that a remove from a cluster has to call GETTIMESTAMP on
every node before dropping from nodes. Not very efficient. Although
currently it tries to drop from every single node anyway, which is also
not very efficient.

I thought about caching the GETTIMESTAMP from the nodes on the first
call. That would improve efficiency. But, since monotonic clocks on
!Linux don't advance when the computer is suspended, consider what might
happen if one node was suspended for a while, then came back. Its
monotonic timestamp would end up behind where the proxying expects it to
be. Would that result in removing when it shouldn't, or refusing to
remove when it should? Have not thought it through. Either way, a
cluster behaving strangly for an extended period of time because one
of its nodes was briefly asleep doesn't seem like good behavior.

2 years agouse REMOVE-BEFORE in P2P protocol
Joey Hess [Thu, 4 Jul 2024 17:42:09 +0000 (13:42 -0400)]
use REMOVE-BEFORE in P2P protocol

Only clusters still need to be fixed to close this todo.

2 years agotoward SafeDropProof expiry checking
Joey Hess [Thu, 4 Jul 2024 16:23:46 +0000 (12:23 -0400)]
toward SafeDropProof expiry checking

Added Maybe POSIXTime to SafeDropProof, which gets set when the proof is
based on a LockedCopy. If there are several LockedCopies, it uses the
closest expiry time. That is not optimal, it may be that the proof
expires based on one LockedCopy but another one has not expired. But
that seems unlikely to really happen, and anyway the user can just
re-run a drop if it fails due to expiry.

Pass the SafeDropProof to removeKey, which is responsible for checking
it for expiry in situations where that could be a problem. Which really
only means in Remote.Git.

Made Remote.Git check expiry when dropping from a local remote.

Checking expiry when dropping from a P2P remote is not yet implemented.
P2P.Protocol.remove has SafeDropProof plumbed through to it for that
purpose.

Fixing the remaining 2 build warnings should complete this work.

Note that the use of a POSIXTime here means that if the clock gets set
forward while git-annex is in the middle of a drop, it may say that
dropping took too long. That seems ok. Less ok is that if the clock gets
turned back a sufficient amount (eg 5 minutes), proof expiry won't be
noticed. It might be better to use the Monotonic clock, but that doesn't
advance when a laptop is suspended, and while there is the linux
Boottime clock, that is not available on other systems. Perhaps a
combination of POSIXTime and the Monotonic clock could detect laptop
suspension and also detect clock being turned back?

There is a potential future flag day where
p2pDefaultLockContentRetentionDuration is not assumed, but is probed
using the P2P protocol, and peers that don't support it can no longer
produce a LockedCopy. Until that happens, when git-annex is
communicating with older peers there is a risk of data loss when
a ssh connection closes during LOCKCONTENT.

2 years agoMerge branch 'master' into p2p_locking
Joey Hess [Thu, 4 Jul 2024 13:52:02 +0000 (09:52 -0400)]
Merge branch 'master' into p2p_locking

2 years agouse Boottime clock on linux
Joey Hess [Wed, 3 Jul 2024 22:44:38 +0000 (18:44 -0400)]
use Boottime clock on linux

Better to advance while suspended, that way a stale content retention
lock will expire while suspended.

The fallback the Monotonic to support older kernels assumes that there
are not systems where Boottime sometimes succeeds and sometimes fails.
If that ever happened, the clock would probably not monotonically
advance as it read from different clocks on different calls! I don't see
any indication in clock_gettime(2) errono list that it can fail
intermittently so probably this is ok.

2 years agofactor out Utility.MonotonicClock
Joey Hess [Wed, 3 Jul 2024 21:54:01 +0000 (17:54 -0400)]
factor out Utility.MonotonicClock

2 years agostatus
Joey Hess [Wed, 3 Jul 2024 21:04:12 +0000 (17:04 -0400)]
status

2 years agoREMOVE-BEFORE and GETTIMESTAMP
Joey Hess [Wed, 3 Jul 2024 20:59:22 +0000 (16:59 -0400)]
REMOVE-BEFORE and GETTIMESTAMP

Only implemented server side, not used client side yet.

And not yet implemented for proxies/clusters, for which there's a build
warning about unhandled cases.

This is P2P protocol version 3. Probably will be the only change in that
version..

Added a dependency on clock to access a monotonic clock.
On i386-ancient, that is at version 0.2.0.0.

2 years agoAdded a comment
yarikoptic [Wed, 3 Jul 2024 20:42:11 +0000 (20:42 +0000)]
Added a comment

2 years agoMerge branch 'master' into p2p_locking
Joey Hess [Wed, 3 Jul 2024 19:54:14 +0000 (15:54 -0400)]
Merge branch 'master' into p2p_locking

2 years agoupdate
Joey Hess [Wed, 3 Jul 2024 19:53:25 +0000 (15:53 -0400)]
update

2 years agostatus
Joey Hess [Wed, 3 Jul 2024 19:01:34 +0000 (15:01 -0400)]
status

2 years agoadd content retention files
Joey Hess [Wed, 3 Jul 2024 18:44:38 +0000 (14:44 -0400)]
add content retention files

This allows lockContentShared to lock content for eg, 10 minutes and
if the process then gets terminated before it can unlock, the content
will remain locked for that amount of time.

The Windows implementation is not yet tested.

In P2P.Annex, a duration of 10 minutes is used. This way, when p2pstdio
or remotedaemon is serving the P2P protocol, and is asked to
LOCKCONTENT, and that process gets killed, the content will not be
subject to deletion. This is not a perfect solution to
doc/todo/P2P_locking_connection_drop_safety.mdwn yet, but it gets most
of the way there, without needing any P2P protocol changes.

This is only done in v10 and higher repositories (or on Windows). It
might be possible to backport it to v8 or earlier, but it would
complicate locking even further, and without a separate lock file, might
be hard. I think that by the time this fix reaches a given user, they
will probably have been running git-annex 10.x long enough that their v8
repositories will have upgraded to v10 after the 1 year wait. And it's
not as if git-annex hasn't already been subject to this problem (though
I have not heard of any data loss caused by it) for 6 years already, so
waiting another fraction of a year on top of however long it takes this
fix to reach users is unlikely to be a problem.

2 years agotodo
Joey Hess [Wed, 3 Jul 2024 17:15:09 +0000 (13:15 -0400)]
todo

2 years agoMerge branch 'assistantpointerrace'
Joey Hess [Tue, 2 Jul 2024 22:04:40 +0000 (18:04 -0400)]
Merge branch 'assistantpointerrace'

2 years agoupdate
Joey Hess [Tue, 2 Jul 2024 22:04:29 +0000 (18:04 -0400)]
update

2 years agoupdate
Joey Hess [Tue, 2 Jul 2024 20:16:37 +0000 (16:16 -0400)]
update

2 years agodrafting P2P protocol over http
Joey Hess [Tue, 2 Jul 2024 20:14:45 +0000 (16:14 -0400)]
drafting P2P protocol over http

2 years agoadd news item for git-annex 10.20240701
Joey Hess [Tue, 2 Jul 2024 16:31:23 +0000 (12:31 -0400)]
add news item for git-annex 10.20240701

2 years agofix build on old ghc
Joey Hess [Tue, 2 Jul 2024 16:27:14 +0000 (12:27 -0400)]
fix build on old ghc

getStdRandom used to be an IO action

2 years agoassistant: Fix a race condition that could cause a pointer file to get ingested into...
Joey Hess [Tue, 2 Jul 2024 16:24:57 +0000 (12:24 -0400)]
assistant: Fix a race condition that could cause a pointer file to get ingested into the annex

This was caused by commit fb8ab2469d389e5b1e554831eeb8b7c7a072d5d7 putting
an isPointerFile check in the wrong place. So if the file was not a pointer
file at that point, but got replaced by one before the file got locked
down, the pointer file would be ingested into the annex.

The fix is simply to move the isPointerFile check to after safeToAdd locks
down the file. Now if the file changes to a pointer file after the
isPointerFile check, ingestion will see that it changed after lockdown,
and will refuse to add it to the annex.

Sponsored-by: the NIH-funded NICEMAN (ReproNim TR&D3) project
2 years agoreproduced bug
Joey Hess [Tue, 2 Jul 2024 14:38:48 +0000 (10:38 -0400)]
reproduced bug

2 years agoprep release
Joey Hess [Mon, 1 Jul 2024 19:13:10 +0000 (15:13 -0400)]
prep release

2 years agoreorder
Joey Hess [Mon, 1 Jul 2024 15:44:54 +0000 (11:44 -0400)]
reorder

2 years agoupdate
Joey Hess [Mon, 1 Jul 2024 15:38:29 +0000 (11:38 -0400)]
update

2 years agotoc
Joey Hess [Mon, 1 Jul 2024 15:37:12 +0000 (11:37 -0400)]
toc

2 years agodocument proxying to special remotes
Joey Hess [Mon, 1 Jul 2024 15:33:55 +0000 (11:33 -0400)]
document proxying to special remotes

2 years agoupdate
Joey Hess [Mon, 1 Jul 2024 15:33:07 +0000 (11:33 -0400)]
update

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 1 Jul 2024 15:29:38 +0000 (11:29 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agoupdate
Joey Hess [Mon, 1 Jul 2024 15:29:04 +0000 (11:29 -0400)]
update

2 years agoMerge branch 'master' into proxy-specialremotes
Joey Hess [Mon, 1 Jul 2024 15:23:21 +0000 (11:23 -0400)]
Merge branch 'master' into proxy-specialremotes

2 years agofix display when proxied GET yields ERROR
Joey Hess [Mon, 1 Jul 2024 15:19:02 +0000 (11:19 -0400)]
fix display when proxied GET yields ERROR

The error message is not displayed to the use, but this mirrors the
behavior when a regular get from a special remote fails. At least now
there is not a protocol error.

2 years agoavoid populating proxy's object file when storing on special remote
Joey Hess [Mon, 1 Jul 2024 14:53:49 +0000 (10:53 -0400)]
avoid populating proxy's object file when storing on special remote

Now that storeKey can have a different object file passed to it, this
complication is not needed. This avoids a lot of strange situations,
and will also be needed if streaming is eventually supported.

2 years agoadd optional object file location to storeKey
Joey Hess [Mon, 1 Jul 2024 14:42:27 +0000 (10:42 -0400)]
add optional object file location to storeKey

This will be used by the next commit to simplify the proxy.

2 years agodup stdio handles for P2P proxy
Joey Hess [Mon, 1 Jul 2024 14:04:45 +0000 (10:04 -0400)]
dup stdio handles for P2P proxy

Special remotes might output to stdout, or read from stdin, which would
mess up the P2P protocol. So dup the handles to avoid any such problem.

2 years agoinitial report on file jumping from locked to unlocked
yarikoptic [Sun, 30 Jun 2024 18:52:23 +0000 (18:52 +0000)]
initial report on file jumping from locked to unlocked

2 years agoTab completion of many commands like info and trust now includes remotes
Joey Hess [Sun, 30 Jun 2024 16:39:18 +0000 (12:39 -0400)]
Tab completion of many commands like info and trust now includes remotes

Especially useful with proxied remotes and clusters, where the user may not
be entirely familiar with the name and can learn by tab completion.

2 years agooriginal report on change in behavior with addurl --batch
yarikoptic [Sun, 30 Jun 2024 16:04:30 +0000 (16:04 +0000)]
original report on change in behavior with addurl --batch

2 years agowording
Joey Hess [Sun, 30 Jun 2024 15:28:17 +0000 (11:28 -0400)]
wording

2 years agoMerge branch 'master' into proxy-specialremotes
Joey Hess [Sun, 30 Jun 2024 15:16:20 +0000 (11:16 -0400)]
Merge branch 'master' into proxy-specialremotes

2 years agolist proxied remotes and cluster gateways in git-annex info
Joey Hess [Sun, 30 Jun 2024 15:14:13 +0000 (11:14 -0400)]
list proxied remotes and cluster gateways in git-annex info

Wanted to also list a cluster's nodes when showing info for the cluster,
but that's hard because it needs getting the name of the proxying
remote, which is some prefix of the cluster's name, but if the names
contain dashes there's no good way to know which prefix it is.

2 years agotodo
Joey Hess [Fri, 28 Jun 2024 21:14:18 +0000 (17:14 -0400)]
todo

2 years agoPUT to proxied special remote working
Joey Hess [Fri, 28 Jun 2024 21:07:01 +0000 (17:07 -0400)]
PUT to proxied special remote working

Still needs some work.

The reason that the waitv is necessary is because without it,
runNet loops back around and reads the next protocol message. But it's
not finished reading the whole bytestring yet, and so it reads some part
of it.

2 years agoGET from proxied special remote
Joey Hess [Fri, 28 Jun 2024 19:32:00 +0000 (15:32 -0400)]
GET from proxied special remote

Working, but lots of room for improvement...

Without streaming, so there is a delay before download begins as the
file is retreived from the special remote.

And when resuming it retrieves the whole file from the special remote
*again*.

Also, if the special remote throws an exception, currently it
shows as "protocol error".

2 years agofix handling of ERROR in response to REMOVE
Joey Hess [Fri, 28 Jun 2024 18:07:23 +0000 (14:07 -0400)]
fix handling of ERROR in response to REMOVE

This allows an error message from a proxied special remote to be
displayed to the client.

In the case where removal from several nodes of a cluster fails,
there can be several errors. What to do? I decided to only show
the first error to the user. Probably in this case the user is not in a
position to do anything about an error message, so best keep it simple.
If the problem with the first node is fixed, they'll see the error from
the next node.

2 years agofix handling of ERROR in response to CHECKPRESENT
Joey Hess [Fri, 28 Jun 2024 17:42:25 +0000 (13:42 -0400)]
fix handling of ERROR in response to CHECKPRESENT

That error is now rethrown on the client, so it will be displayed.

For example:

$ git-annex fsck x --fast --from AMS-dir
fsck x (special remote reports: directory /home/joey/tmp/bench2/dir is not accessible) failed

No protocol version check is needed. Because in order to talk to a
proxied special remote, the client has to be running the upcoming
git-annex release. Which has this fix in it.

2 years agoproxying special remotes
Joey Hess [Fri, 28 Jun 2024 17:22:56 +0000 (13:22 -0400)]
proxying special remotes

This is early, but already working for CHECKPRESENT.

However, when the special remote throws an exception on checkPresent,
this happens:

[2024-06-28 13:22:18.520884287] (P2P.IO) [ThreadId 4] P2P > ERROR directory /home/joey/tmp/bench2/dir is not accessible
[2024-06-28 13:22:18.521053135] (P2P.IO) [ThreadId 4] P2P < ERROR expected SUCCESS or FAILURE
git-annex: client error: expected SUCCESS or FAILURE
(fixing location log) p2pstdio: 1 failed

  ** Based on the location log, x
  ** was expected to be present, but its content is missing.
failed

2 years agoshut down RemoteSides cleanly
Joey Hess [Fri, 28 Jun 2024 17:19:57 +0000 (13:19 -0400)]
shut down RemoteSides cleanly

Before it just exited without actually shutting down the RemoteSides,
when the client hung up.

2 years agosupport a P2PConnection that uses TMVars rather than Handles
Joey Hess [Fri, 28 Jun 2024 15:22:29 +0000 (11:22 -0400)]
support a P2PConnection that uses TMVars rather than Handles

This will allow having an internal thread speaking P2P protocol,
which will be needed to support proxying to external special remotes.

No serialization is done on the internal P2P protocol of course.

When a ByteString is being exchanged, it may or may not be exactly
the length indicated by DATA. While that has to be carefully managed
for the serialized P2P protocol, here it would require buffering the
whole lazy bytestring in memory to check its length when sending,
so it's better to do length checks on the receiving side.

2 years agoremove mention of XMPP which is no longer used
Joey Hess [Thu, 27 Jun 2024 19:56:30 +0000 (15:56 -0400)]
remove mention of XMPP which is no longer used

2 years agolayout
Joey Hess [Thu, 27 Jun 2024 19:52:58 +0000 (15:52 -0400)]
layout

2 years agolayout
Joey Hess [Thu, 27 Jun 2024 19:52:10 +0000 (15:52 -0400)]
layout

2 years agoimprove
Joey Hess [Thu, 27 Jun 2024 19:50:27 +0000 (15:50 -0400)]
improve

2 years agomerged the proxy branch into master!
Joey Hess [Thu, 27 Jun 2024 19:44:11 +0000 (15:44 -0400)]
merged the proxy branch into master!

2 years agoMerge branch 'proxy'
Joey Hess [Thu, 27 Jun 2024 19:43:45 +0000 (15:43 -0400)]
Merge branch 'proxy'

2 years agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 27 Jun 2024 19:43:42 +0000 (15:43 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

2 years agomove clusters page to tips
Joey Hess [Thu, 27 Jun 2024 19:41:38 +0000 (15:41 -0400)]
move clusters page to tips

also add a section on the front page highlighting major new features

2 years agomake extendcluster also updatecluster
Joey Hess [Thu, 27 Jun 2024 19:34:45 +0000 (15:34 -0400)]
make extendcluster also updatecluster

This avoids the user forgetting to do it and simplifies the
documentation.

2 years agoupdate
Joey Hess [Thu, 27 Jun 2024 19:28:10 +0000 (15:28 -0400)]
update

2 years agogive proxied cluster nodes a higher cost than the cluster gateway
Joey Hess [Thu, 27 Jun 2024 19:21:03 +0000 (15:21 -0400)]
give proxied cluster nodes a higher cost than the cluster gateway

This makes eg git-annex get default to using the cluster rather than an
arbitrary node, which is better UI.

The actual cost of accessing a proxied node vs using the cluster is
basically the same. But using the cluster allows smarter load-balancing
to be done on the cluster.

2 years agoGET and CHECKPRESENT amoung lowest cost cluster nodes
Joey Hess [Thu, 27 Jun 2024 18:36:55 +0000 (14:36 -0400)]
GET and CHECKPRESENT amoung lowest cost cluster nodes

Before it was using a node that might have had a higher cost.

Also threw in a random selection from amoung the low cost nodes. Of
course this is a poor excuse for load balancing, but it's better than
nothing. Most of the time...

2 years agoupdate
Joey Hess [Thu, 27 Jun 2024 17:40:09 +0000 (13:40 -0400)]
update

2 years agoremove a TODO marker
Joey Hess [Thu, 27 Jun 2024 17:36:04 +0000 (13:36 -0400)]
remove a TODO marker

I have a todo item for this outside the code

2 years agoremove viconfig item
Joey Hess [Thu, 27 Jun 2024 17:34:24 +0000 (13:34 -0400)]
remove viconfig item

it works when run on a client that has the cluster gateway as a remote,
just not when on the cluster gateway

2 years agodocument various multi-gateway cluster considerations
Joey Hess [Thu, 27 Jun 2024 17:33:04 +0000 (13:33 -0400)]
document various multi-gateway cluster considerations

Perhaps this will avoid me needing to eg, implement spanning tree
protocol. ;-)

2 years agoupdates
Joey Hess [Thu, 27 Jun 2024 16:57:08 +0000 (12:57 -0400)]
updates

2 years agoupdate for clusters
Joey Hess [Thu, 27 Jun 2024 16:47:26 +0000 (12:47 -0400)]
update for clusters

2 years agoMerge branch 'master' into proxy
Joey Hess [Thu, 27 Jun 2024 16:41:57 +0000 (12:41 -0400)]
Merge branch 'master' into proxy