Skip to content

SQLite support in LSIF server

Administrator requested to merge lsif-server-sqlite into master

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.

Merge request reports

Loading