Importing certain databases from zip are extremely slow
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- typescript, vscode
- Domínio
- tooling
Direção de pesquisa
Comece rastreando o caminho de importação do banco de dados e o descompactador em streaming atual; em seguida, compare a leitura dos cabeçalhos de arquivo com a busca no diretório central para arquivos que contenham muitos arquivos pequenos. A tarefa estará concluída quando arquivos grandes de banco de dados forem importados substancialmente mais rápido, enquanto arquivos com cabeçalhos de arquivo incorretos continuarem sendo processados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I can't share the database because it is private, but this database is less than 1GB zipped and about 3.4GB unzipped. Importing this database took over 1.5 hours to completion. I think the problem has to do with the fact that there are over 100,000 source files. First, these files need to be unzipped and placed in a directory. Then we need to re-zip them into a src.zip file. Our current unzipper library uses streaming, but it does read each file into memory separately.
It's possible that the slowness is exacerbated by the fix here: https://github.com/github/vscode-codeql/issues/622. Rather than read the zip in a single pass, we read the zips central directory and then grab each file based on what we find there.
I implemented this fix because some archives do not have correct file headers. The central directory is the source of truth and it exists at the end of the file. This happens when a zip file is updated after it is created.
Most of the time reading the file headers will be correct (except when they aren't). And that is likely faster than the central directory approach, especially when there are lots of small files. So, one possible solution would be to try reading via the file headers first and if that fails, fall back to the central directory.
- Linguagem predominante
- TypeScript
- Estrelas
- 539
- Forks
- 240
- Merge médio
- 2d 6h
- PRs com merge (30d)
- 29
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 github/vscode-codeql
-
bug VSCode
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
github/vscode-codeql#4471 · 1 comentário ·
-
bug enhancement VSCode
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
github/vscode-codeql#592 · 2 comentários ·
-
enhancement VSCode
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
github/vscode-codeql#4432 · 1 comentário ·
-
bug VSCode
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 52/100
github/vscode-codeql#4356 ·
-
bug VSCode
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 64/100
github/vscode-codeql#4339 · 1 comentário ·
Todas as issues de github/vscode-codeql
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
bug v2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
modelcontextprotocol/inspector#2458 · 1 comentário ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
railmapgen/rmp-gallery#4068 ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
carbon-design-system/ibm-products#9907 ·