Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.springtail.io/llms.txt

Use this file to discover all available pages before exploring further.

Root directories

DirectoryDescription
src/Source tree by module
include/Header tree by module
external/Where vcpkg installs its packages
scripts/Helper scripts
python/Python libraries for testing; coordinator for deployment; localcluster controller and utilities
docker/Docker files, scripts
cmake/CMake helper functions
local_cluster/Local cluster setup scripts for running cluster using containers on local machine
debug/ *Conditionally created by CMake for debug builds
release/ *Conditionally created by CMake for production builds

Important files

FilenameDescription
CMakeLists.txtTop level CMake file for building code. Add new modules/sub-dirs here. Other configuration should be local to each module
vcpkg.jsonList of C++ vcpkg dependencies; See list of packages
clean.sh / debug.sh / release.shHelper scripts, wrapper around CMake to clean, build debug or build release
system.jsonProperties JSON file for specifying hostnames, and other configuration info for modules
python/testing/springtail.pyInitialize redis with properties specified in system.json.* file; bring up system, bring down system, run checks on system
python/testing/test_runner.pyRun full system tests, uses springtail.py to bring up and down system, runs tests located in test_cases

Modules

NameDescription
commonCommon utilities, springtail_init() should be called in every main; logging, exceptions, concurrent queues, thread pool, etc.
storageThreaded storage layer; B-tree, extent and schema handling and definition
pg_replLow-level Postgres replication; connecting to primary and decoding replication messages
pg_log_mgrConsumes Postgres replication stream to log, process log, extracts transaction start/commit, inserts commit records into a queue to be consumed by the committer. The committer is responsible for applying log changes to the tables and committing them.
write_cacheCache for holding dirty extents by XID; indexed by Table ID, Extent ID, XID and primary key value
xid_mgrPersistently stores last committed XID
benchmarksCode for benchmarking file system performance (for distributed file systems)
protogRPC protocol definitions
sys_tbl_mgrSystem table service & cache; accessed via Thrift; centralizes management of system table metadata
proxyPostgres Proxy that handles read/write splitting sending writes to primary, and reads to FDWs
pg_fdwPostgres frontend query nodes implemented using Postgres Foreign Data Wrapper (FDW) extension; also includes the ddl_daemon for managing DDL changes for the FDW (to create/alter foreign tables)
redisRedis helper classes
admin_httpEmbedded internal http server
pg_extPostgres extension related