Databases
Perforator relies on several databases to store its persistent state.
PostgreSQL
Perforator stores various metadata and configuration in a PostgreSQL database.
Tables
Following tables are used:
-
tasks
- contains recent tasks (user-specified parameters as well as coordination state and task outcome). -
binaries
- contains metadata for binaries, uploaded to object storage. -
banned_users
- contains users banned from interacting with API (i.e. they are unable to create new tasks). -
binary_processing_queue
- queue-like table used in GSYM-based symbolization.
-
gsym
- contains metadata for the GSYM-based symbolization. -
schema_migrations
- coordination state for the database migration process. -
microscopes
- contains data for the microscopes.
ClickHouse
Perforator stores profiles metadata in a ClickHouse table named profiles
. Perforator uses it to find profiles matching filter.
Object storage
Additionally, Perforator requires S3-compatible object storage buckets to store profiles, GSYM data and binaries.
Compatibility
Perforator is tested to work with the following databases:
-
PostgreSQL 15.
-
ClickHouse 24.3 and 24.8.