Importing certain databases from zip are extremely slow
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- typescript, vscode
- Domaine
- tooling
Piste de recherche
Commencez par retracer le chemin d’importation de la base de données et le décompresseur en streaming actuel, puis comparez la lecture des en-têtes de fichiers avec la recherche dans le répertoire central pour les archives contenant de nombreux petits fichiers. Le travail est terminé lorsque les grandes archives de bases de données sont importées beaucoup plus rapidement tout en continuant à gérer les archives dont les en-têtes de fichiers sont incorrects.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- TypeScript
- Étoiles
- 539
- Forks
- 240
- Merge moyen
- 2 j 18 h
- PR mergées (30 j)
- 37
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de github/vscode-codeql
-
bug VSCode
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
github/vscode-codeql#4471 · 1 commentaire ·
-
bug enhancement VSCode
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
github/vscode-codeql#592 · 2 commentaires ·
-
enhancement VSCode
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
github/vscode-codeql#4432 · 1 commentaire ·
-
bug VSCode
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
github/vscode-codeql#4356 ·
-
bug VSCode
Difficulté 3/5 1-2 jours Accessibilité débutants 64/100
github/vscode-codeql#4339 · 1 commentaire ·
Toutes les issues de github/vscode-codeql
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
bug v2
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
modelcontextprotocol/inspector#2458 · 1 commentaire ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
railmapgen/rmp-gallery#4068 ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
carbon-design-system/ibm-products#9907 ·