update documentation for the download status page #1169
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#1169
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Brian's New Downloader (#287, #288, #798, #800, #990), and subsequently Brian's New Visualizer (#1200) also offers a download status page with a great deal more information than the old one. Although it is really good to have all this information available, it is rather cryptic. This ticket is to update the documentation in source:docs/frontends/download-status.rst explaining what all the fields mean.
See also #1265 which is about adding labels and documentation onto the web page itself.
Attachment down-0.html (716868 bytes) added
I'm slowly (i.e. post-1.8.0, maybe in a 1.8.1) changing the data on this page
and adding visualizations, so I don't want to put too much energy into
documenting a transient/unstable data structure quite yet. But here's a quick
summary of what's on the new downloader status page.
First, what's involved in a download?:
read()
calls, each with a starting offset(defaults to 0) and a length (defaults to the whole file). A regular
webapi GET request will result in a whole-file
read()
callread()
call turns into an ordered sequence ofget_segment()
calls. A whole-file read will fetch all segments, inorder, but partial reads or multiple simultaneous reads will result in
random-access of segments. Segment reads always return ciphertext: the
layer above that (in
read()
) is responsible for decryption.("DYHB" is an abbreviation for "Do You Have Block", and is the message we
send to storage servers to ask them if they have any shares for us. The
name is historical, from Mnet/MV, but nicely distinctive. Tahoe's actual
message name is
remote_get_buckets()
.). Responses come backeventually, or don't.
downloading. We send "block requests" for various pieces of the share.
Responses come back eventually, or don't.
decode the data and satisfy the segment read.
to satisfy the
read()
call (if the read call started or ended in themiddle of a segment, we'll only use part of the data, otherwise we'll use
all of it).
With that background, here is the data currently on the download-status page:
the serverid to which the request was sent
the time at which the request was sent. Note that all timestamps are
relative to the start of the first
read()
call and indicated with a"
+
" signthe time at which the response was received (if ever)
the share numbers that the server has, if any
the elapsed time taken by the request
also, each line is colored according to the serverid. This color is also
used in the "Requests" section below.
"Read Events": this shows all the FileNode
read()
calls and theirthe range of the file that was requested (as
OFFSET:+LENGTH
). Awhole-file GET will start at 0 and read the entire file.
the time at which the
read()
was madethe time at which the request finished, either because the last byte of
data was returned to the
read()
caller, or because they cancelledthe read by calling
stopProducing
(i.e. closing the HTTP connection)the number of bytes returned to the caller so far
the time spent on the read, so far
the total time spent in AES decryption
total time spend paused by the client (
pauseProducing
), generallybecause the HTTP connection filled up, which most streaming media players
will do to limit how much data they have to buffer
effective speed of the
read()
, not including paused time"Segment Events": this shows each
get_segment()
call and itsEach request shows the segment number being requested and the time at
which the
get_segment()
call was madeEach delivery shows:
segment number
range of file data (as
OFFSET:+SIZE
) deliveredelapsed time spent doing ZFEC decoding
overall elapsed time fetching the segment
effective speed of the segment fetch
"Requests": this shows every block-request sent to the storage servers.
OFFSET:+SIZE
)tried to read off the end of the share)
Also note that each Request line is colored according to the serverid it was
sent to. And all timestamps are shown relative to the start of the first
read() call: for example the first DYHB message was sent at
+0.001393s
about 1.4 milliseconds after the read() call started everything off.
Thanks for the documentation! We should add this into the source:docs directory, and/or I wonder if it would be too disruptive to make it be statically served up by the wui and add a hyperlink on the download status page to it.
heh, nice keyword :)
eh, I'm -0.. it'd be nice if folks could find out what the table means without searching for this ticket, but also we've got a lot of random little displays and it'd be a long process to provide (and maintain!) docs for each of them.
That said, it wouldn't be very hard to copy this into source:src/allmydata/web/ and include a static link to it on that page. Somebody (me?) would have to remember to change it once the changes I'm working on finally land. As a curious user poking around, I'd probably appreciate seeing that link.
Copied Brian's docs from comment:79392 into source:trunk/docs/frontends/download-status.txt in changeset:36f698b6371f82e8. I'm going to change this ticket to be about the idea of linking that document into the WUI itself with a "What does this mean?" link (as per comment:79393 and comment:79394).
documentation for the new download status pageto include documentation for the new download status page linked from the page itselfWarning: we're going to integrate the new visualization tool, see #1200, which will change what is displayed on the download status page and/or will change how it is displayed. So you might want to fix this ticket to add help/documentation for the new version instead of the current version.
I think now that the New Visualizer has landed we need to update source:trunk/docs/frontends/download-status.rst.
include documentation for the new download status page linked from the page itselfto update documentation for the new download status page linked from the page itselfupdate documentation for the new download status page linked from the page itselfto update documentation for the download status pagenot happening in 1.9
FYI the docs in source:docs/frontends/download-status.rst are correct. The timeline is an alternative way of viewing that same data, but the first link the user can get to is a big HTML table, which download-status.rst (mostly) correctly describes. It might be nice to make those docs available as a hyperlinked "about this table" page, but that's not super critical.
Okay, this ticket is just about making sure that source:docs/frontends/download-status.rst is a correct description of the "download status" page which is the big HTML table, not the Javascript visualization. Brian, would you please review that document and fix anything that is incorrect or stale? Thank you!