Importing certain databases from zip are extremely slow
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- typescript, vscode
- Área
- tooling
Línea de trabajo
Empieza siguiendo la ruta de importación de la base de datos y el descompresor por streaming actual; después, compara la lectura de los encabezados de archivo con la búsqueda en el directorio central para archivos que contengan muchos archivos pequeños. Se considera terminado cuando los archivos grandes de bases de datos se importan sustancialmente más rápido y se siguen manejando los archivos con encabezados de archivo incorrectos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- TypeScript
- Estrellas
- 539
- Forks
- 240
- Merge medio
- 2 d 6 h
- PR fusionados (30 d)
- 29
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 github/vscode-codeql
-
bug VSCode
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
github/vscode-codeql#4471 · 1 comentario ·
-
bug enhancement VSCode
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
github/vscode-codeql#592 · 2 comentarios ·
-
enhancement VSCode
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
github/vscode-codeql#4432 · 1 comentario ·
-
bug VSCode
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
github/vscode-codeql#4356 ·
-
bug VSCode
Dificultad 3/5 1-2 días Aptitud para principiantes 64/100
github/vscode-codeql#4339 · 1 comentario ·
Todos los issues de github/vscode-codeql
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
safetrustcr/dApp-SafeTrust#426 ·
-
area:workflow bug ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
fil-donadoni/tolaria#4409 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Fission-AI/OpenSpec#1960 ·
-
Add dependabot Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
corsairdev/corsair#1764 ·