SQLite support in LSIF server
Created by: efritz
This adds support for SQLite dump files in the LSIF HTTP server. This gives us an immediate way to compare the memory and time cost of the available on-disk formats for LSIF files.
Major changes
- add graphStore, blobStore, and compression source files from the vscode-lsif-extension repo
- shell-out to lsif-sqlite to crreate graph and blob-encoded SQLite databases on upload
- add feature flags (read from environment) for each on-disk type
- create multi-database that wraps zero or more json/graph/blob databaes/stores and performs each operation on all of them in parallel - it currently displays the elapsed time, but these should also be made available in aggregate (e.g. a prometheus exporter)
- replace usages of diskKey with a hashKey that does not include the
.lsif
extension as it did before, and update usages around the database to read from each enabled extension
Additional effort: The output of lsif-tsc seems to convert to a SQLite dump just fine, but the output of the lsif-go (and possibly lsif-py) utilities do not convert in a valid way (but they do convert without error). This will need attention next.