Eliminate inefficiency in form of some extra data downloaded in sync for large files
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- python
- Domínio
- performance
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Python
- Estrelas
- 214
- Forks
- 68
- Merge médio
- 51min
- PRs com merge (30d)
- 6
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Backblaze/b2-sdk-python
-
Download and copy sync actions print remote file names without escape_control_charsTalvez já em andamento @dreyfus92 assumiu há 15 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Backblaze/b2-sdk-python#631 ·
Mantenedores costumam responder em até 1 dia
-
SqliteAccountInfo profile name validation uses "re.match", so only the first character is checkedTalvez já em andamento @nazarli-shabnam assumiu há 9 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Backblaze/b2-sdk-python#629 ·
Mantenedores costumam responder em até 1 dia
-
Adopt the AI-native SDLC and repository policiesTalvez já em andamento @goanpeca assumiu há 18 dias. Abertaenhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
Backblaze/b2-sdk-python#634 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 50/100
Backblaze/b2-sdk-python#630 ·
Mantenedores costumam responder em até 1 dia
-
ci: cli-compat fails — 4 sse/sync integration tests broken in B2_Command_Line_Tool (all environments)Talvez livre de novo @ffumero2003 assumiu há 37 dias e não há nenhum pull request aberto. Abertabug testing
Backblaze/b2-sdk-python#627 · 2 comentários · 1 responsável ·
Mantenedores costumam responder em até 1 dia
Todas as issues de Backblaze/b2-sdk-python
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
btclib-org/btclib-node#2505 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
open-webui/open-webui#34462 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
gorakhargosh/watchdog#1462 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
openwisp/openwisp-monitoring#889 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
IETF-Hackathon/pqc-certificates#351 ·
Mantenedores costumam responder em até 2 dias