Importing certain databases from zip are extremely slow
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- typescript, vscode
- Ambito
- tooling
Direzione di ricerca
Inizia tracciando il percorso di importazione del database e l’attuale decompressor streaming, quindi confronta la lettura degli header dei file con la ricerca nella directory centrale per gli archivi contenenti molti file di piccole dimensioni. Il lavoro è completato quando gli archivi di database di grandi dimensioni vengono importati molto più velocemente, continuando a gestire gli archivi con header dei file errati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- TypeScript
- Stelle
- 539
- Fork
- 240
- Merge medio
- 2g 18h
- PR unite (30g)
- 37
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di github/vscode-codeql
-
bug VSCode
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
github/vscode-codeql#4471 · 1 commento ·
-
bug enhancement VSCode
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
github/vscode-codeql#592 · 2 commenti ·
-
enhancement VSCode
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
github/vscode-codeql#4432 · 1 commento ·
-
bug VSCode
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
github/vscode-codeql#4356 ·
-
bug VSCode
Difficoltà 3/5 1-2 giorni Idoneità per principianti 64/100
github/vscode-codeql#4339 · 1 commento ·
Tutte le issue di github/vscode-codeql
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
bug v2
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
modelcontextprotocol/inspector#2458 · 1 commento ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
railmapgen/rmp-gallery#4068 ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
carbon-design-system/ibm-products#9907 ·