Skip to content

Commit 546555a

Browse files
committed
broken links
1 parent 930587c commit 546555a

11 files changed

Lines changed: 25 additions & 25 deletions

File tree

docs/architecture/comparison.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ PgDog aims to be the de facto PostgreSQL proxy and pooler. Below is a feature co
2828
| [Manual routing](../features/sharding/manual-routing.md) | Only using comments (regex), doesn't work with prepared statements | :material-check-circle-outline: |
2929
| [Automatic routing](../features/sharding/query-routing.md) | No | :material-check-circle-outline: |
3030
| [Primary key generation](../features/sharding/schema_management/primary_keys.md) | No | :material-check-circle-outline: |
31-
| [Cross-shard queries](../features/sharding/cross-shard.md) | No | Partial support |
32-
| [COPY](../features/sharding/copy.md) | No | :material-check-circle-outline: |
31+
| [Cross-shard queries](../features/sharding/cross-shard-queries/index.md) | No | Partial support |
32+
| [COPY](../features/sharding/cross-shard-queries/copy.md) | No | :material-check-circle-outline: |
3333
| [Postgres-compatible sharding functions](../features/sharding/sharding-functions.md) | No | Same functions as declarative partitioning |
3434
| Two-Phase Commit | No | :material-check-circle-outline: |

docs/features/sharding/2pc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,4 @@ Two-phase commit is used for writes only. Read transactions are finished using n
104104
## Read more
105105

106106
- [Omnisharded tables](omnishards.md)
107-
- [Cross-shard queries](cross-shard.md)
107+
- [Cross-shard queries](cross-shard-queries/index.md)

docs/features/sharding/cross-shard-queries/copy.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ PgDog supports sharding data sent via `COPY`, using any one of the following for
2222
| Text | PostgreSQL version of CSV, with `<tab>` (`\t`) as the delimiter. | `hello\tworld\t1\t2\t3` |
2323
| Binary | PostgreSQL-specific format that encodes data using the format used to store it on disk. | |
2424

25-
Each row is extracted from the data stream, inspected for the sharding key, and sent to a data node. The sharding key should be specified in the [configuration](../../configuration/pgdog.toml/sharded_tables.md) and provided in the command statement, for example:
25+
Each row is extracted from the data stream, inspected for the sharding key, and sent to a data node. The sharding key should be specified in the [configuration](../../../configuration/pgdog.toml/sharded_tables.md) and provided in the command statement, for example:
2626

2727
```postgresql
2828
COPY users (id, email) FROM STDIN;
@@ -38,5 +38,5 @@ The cost of parsing and sharding the CSV stream in PgDog is negligibly small.
3838

3939
## Read more
4040

41-
- [Two-phase commit](2pc.md)
42-
- [Omnisharded tables](omnishards.md)
41+
- [Two-phase commit](../2pc.md)
42+
- [Omnisharded tables](../omnishards.md)

docs/features/sharding/cross-shard-queries/ddl.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ icon: material/table-cog
88

99
## Atomicity
1010

11-
DDL statements should be atomic across all shards. This is to protect against a single shard failure to create a table or index, which could result in an inconsistent schema. PgDog can use [two-phase commit](2pc.md) to ensure this is the case, however that means that all DDL statements must be executed inside a transaction, for example:
11+
DDL statements should be atomic across all shards. This is to protect against a single shard failure to create a table or index, which could result in an inconsistent schema. PgDog can use [two-phase commit](../2pc.md) to ensure this is the case, however that means that all DDL statements must be executed inside a transaction, for example:
1212

1313
```postgresql
1414
BEGIN;
@@ -22,7 +22,7 @@ COMMIT;
2222

2323
## Idempotency
2424

25-
Some statements, like `CREATE INDEX CONCURRENTLY`, cannot run inside transactions. To make sure these are safely executed, you have two options: use [manual routing](manual-routing.md) and execute it on each shard individually, or write idempotent schema migrations, for example:
25+
Some statements, like `CREATE INDEX CONCURRENTLY`, cannot run inside transactions. To make sure these are safely executed, you have two options: use [manual routing](../manual-routing.md) and execute it on each shard individually, or write idempotent schema migrations, for example:
2626

2727
```postgresql
2828
DROP INDEX IF EXISTS user_id_idx;

docs/features/sharding/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ PgDog is a query router. It can extract sharding hints directly from the SQL usi
1919
| Query router feature | Description |
2020
|-|-|
2121
| [**Direct-to-shard queries**](query-routing.md) | Automatic sharding key detection which sends the query to one shard only. |
22-
| [**Cross-shard queries**](cross-shard.md) | Queries that don't have a sharding key are sent to all shards with results collected and transformed, as if they came from one database. |
22+
| [**Cross-shard queries**](cross-shard-queries/index.md) | Queries that don't have a sharding key are sent to all shards with results collected and transformed, as if they came from one database. |
2323
| [**Manual routing**](manual-routing.md) | Provide the sharding key in a query comment, or separately with a `SET` PostgreSQL command. |
24-
| [**Sharded COPY**](copy.md) | Data sent via `COPY` commands is automatically split between all shards, using the configured [sharding function](sharding-functions.md). |
24+
| [**Sharded COPY**](cross-shard-queries/copy.md) | Data sent via `COPY` commands is automatically split between all shards, using the configured [sharding function](sharding-functions.md). |
2525

2626
## Managing data
2727

docs/features/sharding/manual-routing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,5 +140,5 @@ You can read more about this in [our blog](https://pgdog.dev/blog/sharding-a-rea
140140

141141
## Read more
142142

143-
- [Cross-shard queries](cross-shard.md)
143+
- [Cross-shard queries](cross-shard-queries/index.md)
144144
- [Sharding functions](sharding-functions.md)

docs/features/sharding/query-routing.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@ The `SELECT` query can express complex filtering logic and not all of it is curr
4040
| Column equals to a value | `payments.user_id = $1` |
4141
| Column matches against a list | `payments.user_id IN ($1, $2, $3)`
4242

43-
All other variations will be ignored and the query will be sent to [all shards](cross-shard.md).
43+
All other variations will be ignored and the query will be sent to [all shards](cross-shard-queries/index.md).
4444

4545
!!! note "Query router improvements"
4646
This is an area of constant improvement. Check back here for updates or [create an issue](https://github.com/pgdogdev/pgdog/issues/new) to request
4747
support for a particular filter you're using.
4848

4949
If the query has multiple sharding key filters, all of them will be extracted and converged to a set of unique shard numbers.
5050

51-
For example, when filtering by a list of values, e.g., `WHERE user_id IN ($1, $2, $3)`, if all of them map to a single shard, the query will be sent to that shard only. If they map to two or more shards, it will be sent to all corresponding shards [concurrently](cross-shard.md).
51+
For example, when filtering by a list of values, e.g., `WHERE user_id IN ($1, $2, $3)`, if all of them map to a single shard, the query will be sent to that shard only. If they map to two or more shards, it will be sent to all corresponding shards [concurrently](cross-shard-queries/index.md).
5252

5353
## INSERT
5454

@@ -77,7 +77,7 @@ VALUES ($1, $2), ($3, $4) -- More than one tuple.
7777

7878
Both `UPDATE` and `DELETE` queries work identically to [`SELECT`](#select) queries. The query router looks inside the `WHERE` clause for sharding keys, and routes the query to the corresponding shard.
7979

80-
If no `WHERE` clause is present, or it's filtering on a column not used for sharding, the query is sent to all shards [concurrently](cross-shard.md), for example:
80+
If no `WHERE` clause is present, or it's filtering on a column not used for sharding, the query is sent to all shards [concurrently](cross-shard-queries/index.md), for example:
8181

8282
```postgresql
8383
UPDATE users SET banned = true;
@@ -144,5 +144,5 @@ The latter will match queries referring to the `users.id` column only. Together
144144

145145
## Read more
146146

147-
- [Cross-shard queries](cross-shard.md)
147+
- [Cross-shard queries](cross-shard-queries/index.md)
148148
- [Manual routing](manual-routing.md)

docs/features/sharding/resharding/hash.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Required (*) and optional parameters for this command are as follows:
3939

4040
The first thing PgDog will do when data sync is started is create a replication slot on each primary database in the source cluster. This will prevent Postgres from removing the WAL, while we copy data for each table to the destination.
4141

42-
Next, each table will be copied, in parallel, to the destination database, using [sharded COPY](../copy.md). Once that's done, table changes are synchronized, in real-time, with logical replication from the replication slot created earlier.
42+
Next, each table will be copied, in parallel, to the destination database, using [sharded COPY](../cross-shard-queries/copy.md). Once that's done, table changes are synchronized, in real-time, with logical replication from the replication slot created earlier.
4343

4444
The whole process happens entirely online, and doesn't require database reboots or pausing writes to the source database.
4545

@@ -95,7 +95,7 @@ PgDog will distribute the table copy load evenly between all replicas in the con
9595

9696
#### Binary `COPY`
9797

98-
PgDog uses the binary `COPY` format to send and receive data, which has been shown to be consistently faster than text, because it avoids the (de)serialization overhead of sending tuples in text form. PgDog decodes tuples in-flight and splits them evenly between destination shards, using the [sharded COPY](../copy.md) implementation.
98+
PgDog uses the binary `COPY` format to send and receive data, which has been shown to be consistently faster than text, because it avoids the (de)serialization overhead of sending tuples in text form. PgDog decodes tuples in-flight and splits them evenly between destination shards, using the [sharded COPY](../cross-shard-queries/copy.md) implementation.
9999

100100
!!! note "Binary compatibility"
101101
While the data format used by PostgreSQL databases hasn't changed in decades, binary `COPY` sends rows exactly as they are stored on disk.

docs/features/sharding/sharding-functions.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The sharding functions are configurable in [`pgdog.toml`](../../configuration/pg
2323
Since sharding is configured for each table or column name, this allows storing tables
2424
with different sharding functions in the same database.
2525

26-
While this works for some [cross-shard](cross-shard.md) queries, joins between tables using a different sharding function are not possible for [direct-to-shard](query-routing.md) queries.
26+
While this works for some [cross-shard](cross-shard-queries/index.md) queries, joins between tables using a different sharding function are not possible for [direct-to-shard](query-routing.md) queries.
2727

2828

2929
## Hash
@@ -81,7 +81,7 @@ values = [1, 2, 3]
8181
shard = 0
8282
```
8383

84-
This example will route all queries with `user_id` equal to one, two, or three to shard zero. Unlike [hash](#hash) sharding, a value <-> shard mapping is required for _all_ values of the sharding key. If a value is used that doesn't have a mapping, the query will be sent to [all shards](cross-shard.md).
84+
This example will route all queries with `user_id` equal to one, two, or three to shard zero. Unlike [hash](#hash) sharding, a value <-> shard mapping is required for _all_ values of the sharding key. If a value is used that doesn't have a mapping, the query will be sent to [all shards](cross-shard-queries/index.md).
8585

8686
!!! note "Required configuration"
8787
The `[[sharded_tables]]` configuration entry is still required for list and range sharding. It specifies the data type of the column, which tells PgDog how to parse its value at runtime.
@@ -242,5 +242,5 @@ If a safe rewrite plan cannot be determined, PgDog will abort the transaction an
242242

243243
## Read more
244244

245-
- [COPY command](copy.md)
245+
- [COPY command](cross-shard-queries/copy.md)
246246
- [Two-phase commit](2pc.md)

docs/features/sharding/supported-queries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ Currently, PgDog only supports `INSERT` statements with one tuple in the `VALUES
7171

7272
### `COPY`
7373

74-
`COPY` statements are automatically sharded between all shards. See [COPY](copy.md) for more details.
74+
`COPY` statements are automatically sharded between all shards. See [COPY](cross-shard-queries/copy.md) for more details.
7575

7676
## DDL
7777

0 commit comments

Comments
 (0)