Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Pbckp 690 update readme#38

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
demonolock wants to merge10 commits intomaster
base:master
Choose a base branch
Loading
fromPBCKP-690-update-readme
Open
Changes from1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
PrevPrevious commit
NextNext commit
Update README.md
Spell corrections
  • Loading branch information
@demonolock
demonolock authoredAug 3, 2023
commit913e0fc439b9ce369717f93884a5ecd4887a88ee
16 changes: 8 additions & 8 deletionsREADME.md
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,12 +6,12 @@

PTRACK saves changes of physical blocks in the memory. You can [effectively use](https://postgrespro.github.io/pg_probackup/#pbk-setting-up-ptrack-backups) `PTRACK` engine for taking incremental backups by [pg_probackup](https://github.com/postgrespro/pg_probackup).

Current patch are available for [11](https://github.com/postgrespro/ptrack/blob/master/patches/REL_11_STABLE-ptrack-core.diff), [12](https://github.com/postgrespro/ptrack/blob/master/patches/REL_12_STABLE-ptrack-core.diff), [13](https://github.com/postgrespro/ptrack/blob/master/patches/REL_13_STABLE-ptrack-core.diff), [14](https://github.com/postgrespro/ptrack/blob/master/patches/REL_14_STABLE-ptrack-core.diff), [15](https://github.com/postgrespro/ptrack/blob/master/patches/REL_15_STABLE-ptrack-core.diff)
Current patch are available forPostgreSQL[11](https://github.com/postgrespro/ptrack/blob/master/patches/REL_11_STABLE-ptrack-core.diff), [12](https://github.com/postgrespro/ptrack/blob/master/patches/REL_12_STABLE-ptrack-core.diff), [13](https://github.com/postgrespro/ptrack/blob/master/patches/REL_13_STABLE-ptrack-core.diff), [14](https://github.com/postgrespro/ptrack/blob/master/patches/REL_14_STABLE-ptrack-core.diff), [15](https://github.com/postgrespro/ptrack/blob/master/patches/REL_15_STABLE-ptrack-core.diff)

## Enterprise edition

Enterprise PTRACK are part of [Postgres Pro Backup Enterprise](https://postgrespro.ru/products/postgrespro/enterprise) andshare posibilityto track more than 100 000 tables and indexesper timewithoutspeed degradationwith [CFS (compressed file system)](https://postgrespro.ru/docs/enterprise/15/cfs).
Benchmarks are x5 timefaster and useful for ERP and DWH with hugeamounth of tables and relations between them.
Enterprise PTRACK are part of [Postgres Pro Backup Enterprise](https://postgrespro.ru/products/postgrespro/enterprise) andoffers the capabilityto track more than 100 000 tables and indexesconcurrentlywithoutany degradationin speed [CFS (compressed file system)](https://postgrespro.ru/docs/enterprise/15/cfs).
According to benchmarks, it operated up to 5 timesfaster and useful for ERP and DWH with hugeamount of tables and relations between them.

## Installation

Expand DownExpand Up@@ -135,7 +135,7 @@ Since version 2.2 we use a different algorithm for tracking changed pages. Thus,

2. The only one production-ready backup utility, that fully supports `PTRACK` is [pg_probackup](https://github.com/postgrespro/pg_probackup).

3. You cannot resize `PTRACK` map in runtime, only on postmaster start. Also, you willloose all tracked changes, so it is recommended to do so in the maintainance window and accompany this operation with full backup.
3. You cannot resize `PTRACK` map in runtime, only on postmaster start. Also, you willlose all tracked changes, so it is recommended to do so in the maintainance window and accompany this operation with full backup.

4. You will need up to `ptrack.map_size * 2` of additional disk space, since `PTRACK` uses additional temporary file for durability purpose. See [Architecture section](#Architecture) for details.

Expand All@@ -145,13 +145,13 @@ Briefly, an overhead of using `PTRACK` on TPS usually does not exceed a couple o

## Architecture

It is designed toallow false positives (i.e. block/page is marked in the `PTRACK` map, but actually has not been changed), butto neverallow false negatives (i.e. loosingany`PGDATA` changes, excepting hint-bits).
It is designed topermit false positives (i.e., block/page is markedas alteredin the `PTRACK` map when it hasn't actually been changed), butit nevertolerates false negatives (i.e., it never losesany PGDATA modifications, barring hint-bits).

Currently, `PTRACK` codebase issplit between small PostgreSQL core patch and extension.All public SQL API methods and main engine areplaced in the `PTRACK` extension,while the core patchcontainsonlycertainhooks and modifies binary utilities toignore `ptrack.map.*` files.
At present, thePTRACK codebase isdivided betweenasmall PostgreSQL core patch andanextension.The public SQL API methods andthemain engine arehoused in the `PTRACK` extension,whereas the core patch onlyincludes specifichooks and modifies binary utilities todisregardptrack.map.* files.

Weuse a single shared hash table in `PTRACK`. Due to the fixed size of the map theremay be false positives (whensome block is marked as changed withoutbeing actually modified), butnotfalsenegative results. However, these falsepostives may be completelyeliminated by setting a highenough `ptrack.map_size`.
In `PTRACK`, weuse a single shared hash table. Due to the fixed size of the map, therecan be false positives (whena block is marked as changed withoutactual modification), but falsenegatives are not allowed. Nevertheless, these falsepositives can be completelyremoved by setting asufficientlyhigh ptrack.map_size.

All reads/writes aremade using atomic operations on`uint64` entries,so the mapiscompletely lockless duringthe normalPostgreSQL operation.Because we do notuse locks for read/write access, `PTRACK`keeps a map (`ptrack.map`) since the last checkpointintact and usesup to 1additional temporary file:
All reads/writes areperformed using atomic operations on uint64 entries,making the map completely lockless duringstandardPostgreSQL operation.Since we do notutilize locks for read/write access, `PTRACK`maintains a map (ptrack.map) from the last checkpointunaltered and usesa maximum of oneadditional temporary file.

* temporary file `ptrack.map.tmp` to durably replace `ptrack.map` during checkpoint.

Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp