Skip to content
Ptrack is a fast block-level incremental backup engine for PostgreSQL
C TSQL Makefile
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
patches Make everything applicable on the top of REL_12_STABLE Jan 13, 2020
.gitignore
LICENSE
Makefile Ptrack 2.0 initial release Jan 12, 2020
README.md
ptrack.c
ptrack.control
ptrack.sql

README.md

ptrack

Overview

Ptrack is a fast block-level incremental backup engine for PostgreSQL. Currently ptrack codebase is split approximately 50%/50% between PostgreSQL core patch and extension. All public SQL API methods are placed in the ptrack extension, while the main engine is still in core.

Installation

  1. Get latest PostgreSQL sources:
git clone https://github.com/postgres/postgres.git -b REL_12_STABLE && cd postgres
  1. Apply PostgreSQL core patch:
git apply ptrack/patches/ptrack-2.0-core.diff
  1. Compile and install PostgreSQL

  2. Set ptrack_map_size (in MB)

echo 'ptrack_map_size = 64' >> postgres_data/postgresql.conf
  1. Compile and install ptrack extension
USE_PGXS=1 make -C /path/to/ptrack/ install
  1. Run PostgreSQL and create ptrack extension
CREATE EXTENSION ptrack;

Public SQL API

  • ptrack_version() --- returns ptrack version string (2.0 currently).
  • pg_ptrack_get_pagemapset('LSN') --- returns a set of changed data files with bitmaps of changed blocks since specified LSN.
  • pg_ptrack_control_lsn() --- returns LSN of the last ptrack map initialization.
  • pg_ptrack_get_block --- returns a requested block of relation.

Architecture

TBA

Roadmap

The main goal currently is to move as much ptrack functionality into the extension as possible and leave only certain requred hooks as core patch.

You can’t perform that action at this time.