Eliminate inefficiency in form of some extra data downloaded in sync for large files
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- python
- Bereich
- performance
Rechercherichtung
No files or tests are named in the payload. Start by locating the Synchronizer class and the downloader it drives in the b2-sdk-python codebase, then trace where a sync download sets the Range header for the first part. The linked B2 integration checklist explains multithreaded downloads. Done means the sync downloader receives the file size and opens the first part with an exact range, avoiding the extra bytes.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Large files are downloaded in parts in parallel by all compliant clients, as specified by B2 integration checklist.
The extra data cost is there because when we start streaming the file, we don't (usually) know the size, so we are not requesting an exact range for the download of the first part, but we are sort of requesting the entire file. As soon as the headers come we realize that it's actually a big file, so we start a download session for the further parts of the file. When the data stream for the first part will emit enough data for us to satisfy the first part of the download range, we close the socket HOWEVER because there is some latency on the network, the server has already managed to send us some extra data which is being transmitted from the server to the client while the connection close request is transmitted from the client to the server. These few extra KB are lost.
When in context of sync we do know the file size. Synchronizer could communicate the file size to a specialized implementation of downloader which would then set a clean download part size using the Range header even for the first part.
- Vorherrschende Sprache
- Python
- Sterne
- 214
- Forks
- 68
- Ø Merge
- 51 Min.
- Gemergte PRs (30 T.)
- 6
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Backblaze/b2-sdk-python
-
Download and copy sync actions print remote file names without escape_control_charsEvtl. vergeben @dreyfus92 hat das vor 15 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Backblaze/b2-sdk-python#631 ·
Maintainer antworten meist innerhalb von 1 Tag
-
SqliteAccountInfo profile name validation uses "re.match", so only the first character is checkedEvtl. vergeben @nazarli-shabnam hat das vor 9 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Backblaze/b2-sdk-python#629 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Adopt the AI-native SDLC and repository policiesEvtl. vergeben @goanpeca hat das vor 18 Tagen übernommen. Offenenhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
Backblaze/b2-sdk-python#634 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 50/100
Backblaze/b2-sdk-python#630 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ci: cli-compat fails — 4 sse/sync integration tests broken in B2_Command_Line_Tool (all environments)Evtl. wieder frei @ffumero2003 hat das vor 37 Tagen übernommen, und es ist kein Pull Request offen. Offenbug testing
Backblaze/b2-sdk-python#627 · 2 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in Backblaze/b2-sdk-python
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
btclib-org/btclib-node#2505 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
open-webui/open-webui#34462 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
gorakhargosh/watchdog#1462 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
openwisp/openwisp-monitoring#889 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
IETF-Hackathon/pqc-certificates#351 ·
Maintainer antworten meist innerhalb von 2 Tagen