comment
This commit is contained in:
parent
e006acc8e3
commit
8ea9f1bc5c
1 changed files with 41 additions and 0 deletions
|
@ -0,0 +1,41 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 4"""
|
||||
date="2019-12-30T18:15:40Z"
|
||||
content="""
|
||||
When -J is used, recent versions use a separate pool of worker threads for
|
||||
the checksumming than the downloading. So even with -J1 checksum of the
|
||||
previous download will not block the next download.
|
||||
|
||||
I've thought about making this the default without -J.. It relies on
|
||||
concurrent-output working well, which it sometimes may not, eg when
|
||||
filenames are not valid unicode, or perhaps on a non-ANSI terminal, and so
|
||||
far it's been worth not defaulting to -J1 to avoid breaking in such edge
|
||||
cases.
|
||||
|
||||
Anyway, it seems to me using -J should avoid most of the overhead, except
|
||||
of course for the remaining checksumming after all downloads finish.
|
||||
|
||||
Incremental checksumming could be done for some of the built-in remotes,
|
||||
but not others like bittorrent which write out of order. Some transfers
|
||||
can resume, and the checksumming would have to somehow catch
|
||||
up to resume point, which adds significant complexity.
|
||||
|
||||
External remotes would need to send the content over a pipe for incremental
|
||||
checksumming, so it would need a protocol extension.
|
||||
|
||||
git-annex's remote API does have the concept that a remote can sufficiently
|
||||
verify the content of a file during transfer that additional checksumming
|
||||
is not necessary. Currently only used for git remotes when hard linking an
|
||||
object from a sibling remote. I don't think it actually matters what
|
||||
checksum a remote uses to do such verification, as long as it's
|
||||
cryptographically secure and runs on the local machine.
|
||||
|
||||
A protocol extension that let an external remote communicate to git-annex
|
||||
that it had done such verification at the end of transfer is worth thinking
|
||||
about.
|
||||
|
||||
Re Ilya's security concerns, as long as the external remote runs the
|
||||
verification on the local machine, it seems there is no added security
|
||||
impact.
|
||||
"""]]
|
Loading…
Reference in a new issue