Eliminate inefficiency in form of some extra data downloaded in sync for large files
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- performance
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 214
- Forks
- 68
- Merge medio
- 51 min
- PR fusionados (30 d)
- 6
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Backblaze/b2-sdk-python
-
Download and copy sync actions print remote file names without escape_control_charsPosiblemente ocupada @dreyfus92 la tomó hace 15 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Backblaze/b2-sdk-python#631 ·
Los mantenedores suelen responder en 1 día
-
SqliteAccountInfo profile name validation uses "re.match", so only the first character is checkedPosiblemente ocupada @nazarli-shabnam la tomó hace 9 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Backblaze/b2-sdk-python#629 ·
Los mantenedores suelen responder en 1 día
-
Adopt the AI-native SDLC and repository policiesPosiblemente ocupada @goanpeca la tomó hace 18 días. Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
Backblaze/b2-sdk-python#634 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 50/100
Backblaze/b2-sdk-python#630 ·
Los mantenedores suelen responder en 1 día
-
ci: cli-compat fails — 4 sse/sync integration tests broken in B2_Command_Line_Tool (all environments)Quizá libre de nuevo @ffumero2003 la tomó hace 37 días y no hay ningún pull request abierto. Abiertobug testing
Backblaze/b2-sdk-python#627 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de Backblaze/b2-sdk-python
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
btclib-org/btclib-node#2505 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
open-webui/open-webui#34462 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
gorakhargosh/watchdog#1462 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
openwisp/openwisp-monitoring#889 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
IETF-Hackathon/pqc-certificates#351 ·
Los mantenedores suelen responder en 2 días