mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-06 21:12:55 +00:00
82 lines
2.2 KiB
Markdown
82 lines
2.2 KiB
Markdown
## Source tree layout
|
|
|
|
Below you will find a brief overview of each subdir in the source tree in alphabetical order.
|
|
|
|
`/control_plane`:
|
|
|
|
Local control plane.
|
|
Functions to start, configure and stop pageserver and postgres instances running as a local processes.
|
|
Intended to be used in integration tests and in CLI tools for local installations.
|
|
|
|
`/docs`:
|
|
|
|
Documentaion of the Zenith features and concepts.
|
|
Now it is mostly dev documentation.
|
|
|
|
`/monitoring`:
|
|
|
|
TODO
|
|
|
|
`/pageserver`:
|
|
|
|
Zenith storage service.
|
|
The pageserver has a few different duties:
|
|
|
|
- Store and manage the data.
|
|
- Generate a tarball with files needed to bootstrap ComputeNode.
|
|
- Respond to GetPage@LSN requests from the Compute Nodes.
|
|
- Receive WAL from the WAL service and decode it.
|
|
- Replay WAL that's applicable to the chunks that the Page Server maintains
|
|
|
|
For more detailed info, see `/pageserver/README`
|
|
|
|
`/postgres_ffi`:
|
|
|
|
Utility functions for interacting with PostgreSQL file formats.
|
|
Misc constants, copied from PostgreSQL headers.
|
|
|
|
`/proxy`:
|
|
|
|
Postgres protocol proxy/router.
|
|
This service listens psql port, can check auth via external service
|
|
and create new databases and accounts (control plane API in our case).
|
|
|
|
`/test_runner`:
|
|
|
|
Integration tests, written in Python using the `pytest` framework.
|
|
|
|
`/vendor/postgres`:
|
|
|
|
PostgreSQL source tree, with the modifications needed for Zenith.
|
|
|
|
`/vendor/postgres/contrib/zenith`:
|
|
|
|
PostgreSQL extension that implements storage manager API and network communications with remote page server.
|
|
|
|
`/vendor/postgres/contrib/zenith_test_utils`:
|
|
|
|
PostgreSQL extension that contains functions needed for testing and debugging.
|
|
|
|
`/walkeeper`:
|
|
|
|
The zenith WAL service that receives WAL from a primary compute nodes and streams it to the pageserver.
|
|
It acts as a holding area and redistribution center for recently generated WAL.
|
|
|
|
For more detailed info, see `/walkeeper/README`
|
|
|
|
`/workspace_hack`:
|
|
The workspace_hack crate exists only to pin down some dependencies.
|
|
|
|
`/zenith`
|
|
|
|
Main entry point for the 'zenith' CLI utility.
|
|
TODO: Doesn't it belong to control_plane?
|
|
|
|
`/zenith_metrics`:
|
|
|
|
Helpers for exposing Prometheus metrics from the server.
|
|
|
|
`/zenith_utils`:
|
|
|
|
Helpers that are shared between other crates in this repository.
|