Skip to content

Commit f52b8c1

Browse files
Merge pull request #6054 from EnterpriseDB/release/2024-09-12a
Release: 2024-09-12a
2 parents dedca3f + ce5fa9b commit f52b8c1

File tree

13 files changed

+111
-30
lines changed

13 files changed

+111
-30
lines changed

advocacy_docs/edb-postgres-ai/analytics/quick_start.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ flavors in the installation when you connect.
110110
as Delta Tables. Every cluster comes pre-loaded to point to a storage bucket
111111
with benchmarking data inside (TPC-H, TPC-DS, Clickbench) at
112112
scale factors 1 and 10.
113-
* Only AWS is supported at the moment. Bring Your OWn Account (BYOA) is not supported.
113+
* Only AWS is supported at the moment. Bring Your Own Account (BYOA) is not supported.
114114
* You can deploy a cluster in any region that is activated in
115115
your EDB Postgres AI Account. Each region has a bucket with a copy of the
116116
benchmarking data, and so when you launch a cluster, it will use the

advocacy_docs/pg_extensions/query_advisor/index.mdx

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ navigation:
1010
- using
1111
---
1212

13-
EDB Query Advisor is a Postgres extension that provides index recommendations by keeping statistics on predicates found in WHERE statements, JOIN clauses, and workload queries. It analyzes the cost-benefit to actual workload queries by replanning them with the hypothetical index. Hypothetical indexes are created based on the predicates collected from the workload queries.
13+
EDB Query Advisor is a Postgres extension that includes the [Index Advisor](#query-advisor) and the [Statistics Advisor](#statistics-advisor).
14+
15+
## Index Advisor
16+
17+
The Index Advisor provides index recommendations by keeping statistics on predicates found in WHERE statements, JOIN clauses, and workload queries. It analyzes the cost-benefit to actual workload queries by replanning them with the hypothetical index. Hypothetical indexes are created based on the predicates collected from the workload queries.
1418

1519
This extension is useful if you want to analyze the most useful indexes that can benefit the workload queries without creating all possible indexes.
1620

@@ -26,10 +30,22 @@ The extension saves the first query text, as is, for each distinct queryid execu
2630

2731
The gathered data isn't saved when the Postgres server is restarted.
2832

29-
See [Using EDB Query Advisor](./using) for a description of the `query_advisor_index_recommendations` function you use to generate the index recommendation.
33+
See [Using EDB Query Advisor](using/#query_advisor_index_recommendationsmin_filter-min_selectivity) for a description of the `query_advisor_index_recommendations` function you use to generate the index recommendation.
34+
35+
## Statistics Advisor
36+
37+
Statistics play a crucial role in determining the quality of query execution plans chosen by the database query optimizer. Sometimes there are dependencies between columns, and unless we create combined statistics using extended statistics, the optimizer assumes these columns are independent. This assumption often leads to incorrect cardinality estimates, which in turn, results in a poor execution plan, negatively impacting query performance.
38+
39+
To address this, we monitor queries where multiple-column filters are applied and check for any selectivity estimation errors. If such errors are detected, we treat those multi-column filters as potential candidates for extended statistics.
40+
41+
Whenever extended statistics recommendations are generated, we process these candidates by exploring various combinations of columns, especially when more than two columns are involved in the filters. Since estimation errors alone don’t definitively indicate which columns are dependent, we try all possible combinations. Currently, to limit the candidate pool, we focus on statistics for no more than two columns at a time.
42+
43+
We also assign weights to each candidate, prioritising them based on how many queries would benefit from those extended statistics and what is the execution cost of the queries are.
44+
45+
See [Using EDB Query Advisor](using/#query_advisor_statistics_recommendationsmin_err_estimate_num-min_err_estimate_ratio) for a description of the `query_advisor_statistics_recommendations` function you can use to generate the statistics recommendation.
3046

3147
## Limitations
3248

33-
- Only single and two-column indexes are considered.
49+
- Only single and two-column indexes and statistics are considered.
3450
- Statistics aren't collected for utility commands.
3551
- The number of predicates and workload entries are static. A change requires a restart.

advocacy_docs/pg_extensions/query_advisor/rel_notes/index.mdx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,20 @@
22
title: 'EDB Query Advisor release notes'
33
navTitle: "Release notes"
44
indexCards: none
5+
navigation:
6+
- query_advisor_1.1.1_rel_notes
7+
- query_advisor_1.0.0_rel_notes
58
---
69
The EDB Query Advisor documentation describes the latest version of EDB Query Advisor,
710
including minor releases and patches. These release notes
811
cover what was new in each release. For new functionality introduced
912
in a minor or patch release, there are also indicators in the content
1013
about the release that introduced the feature.
1114

12-
| Version | Release Date |
13-
| --------------------------- | ------------ |
14-
| [1.0.0](query_advisor_1.0.0_rel_notes) | 10 May 2023 |
15+
| Version | Release Date |
16+
|----------------------------------------|--------------|
17+
| [1.1.1](query_advisor_1.1.1_rel_notes) | 12 Sep 2024 |
18+
| [1.0.0](query_advisor_1.0.0_rel_notes) | 10 May 2023 |
1519

1620

1721

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: Release notes for Query Advisor version 1.1.1
3+
navTitle: "Version 1.1.1"
4+
---
5+
6+
This release of Query Advisor includes:
7+
8+
| Type | Description |
9+
| ------- | -------------------------------------------------------------------------- |
10+
| Feature | Added the Statistics Advisor. |

advocacy_docs/pg_extensions/query_advisor/using.mdx

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,29 @@ __OUTPUT__
2727
| CREATE INDEX ON partsupp USING btree (ps_suppkey); | 50159616 | 13.254544 |
2828
(3 rows)
2929
```
30+
### query_advisor_statistics_recommendations(min_err_estimate_num, min_err_estimate_ratio)
31+
32+
This function recommends potentially useful extended statistics by analyzing the statistics collected from the quals of user queries.
33+
34+
By default, `min_err_estimate_num` and `min_err_estimate_ratio` are set to `0`. You can use the `min_err_estimate_num` and `min_err_estimate_ratio` parameters to override the default.
35+
36+
The function generates potential candidates from the multi-column filters of your queries. Then, these candidates are processed by exploring different possible combinations. Currently the focus is on statistics for two columns at a time.
37+
38+
It also shows the weights to each candidate. Weights are based on how many queries would benefit from those extended statistics and what the execution cost of the queries would be.
39+
40+
For example:
41+
42+
```sql
43+
# running as postgres user
44+
select * from query_advisor_statistics_recommendations();
45+
__OUTPUT__
46+
| statistics | weight |
47+
+----------------------------------------------------------------------------------------+--------------------+
48+
| CREATE STATISTICS part_p_brand_p_container ON p_brand, p_container FROM public.part; | 4940012.436935346 |
49+
| CREATE STATISTICS part_p_brand_p_type ON p_brand, p_type FROM public.part; | 306202.2549564565 |
50+
| CREATE STATISTICS part_p_brand_p_size ON p_brand, p_size FROM public.part; | 2879764.4054564573 |
51+
(3 rows)
52+
```
3053

3154
### query_advisor_qualstat
3255
This function returns the counts for every qualifier identified by the expression hash. This hash identifies each expression.
@@ -92,3 +115,21 @@ __OUTPUT__
92115
public | pgbench_branches | bid | pg_catalog.= | | | | 10 | 2000000 | 1999990
93116
public | t1 | id | pg_catalog.= | public | t2 | id_t1 | 1 | 10000 | 9999
94117
```
118+
119+
### query_advisor_statistics_recommendations
120+
121+
It skips the weight column from `query_advisor_statistics_recommendations`.
122+
123+
For example:
124+
125+
```sql
126+
# running as postgres user
127+
select * from query_advisor_statistics_recommendations;
128+
__OUTPUT__
129+
| statistics |
130+
+----------------------------------------------------------------------------------------+
131+
| CREATE STATISTICS part_p_brand_p_container ON p_brand, p_container FROM public.part; |
132+
| CREATE STATISTICS part_p_brand_p_type ON p_brand, p_type FROM public.part; |
133+
| CREATE STATISTICS part_p_brand_p_size ON p_brand, p_size FROM public.part; |
134+
(3 rows)
135+
```

advocacy_docs/supported-open-source/postgresql/installing/windows.mdx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@ Rather than use the EDB installer, you can also obtain a prebuilt installation p
2727

2828
## Installing PostgreSQL
2929

30-
To perform an installation using the graphical installation wizard, you need superuser or administrator privileges.
30+
To perform an installation using the graphical installation wizard, you need superuser or administrator privileges.
3131

32-
!!! Note
33-
If you're using the graphical installation wizard to perform a system upgrade, the installer preserves the configuration options specified during the previous installation.
32+
!!!note Notes
33+
- EDB doesn't support all non-ASCII, multi-byte characters in user or machine names. Use ASCII characters only to avoid installation errors related to unsupported path names.
34+
- If you're using the graphical installation wizard to perform a system ***upgrade***, the installer preserves the configuration options specified during the previous installation.
35+
!!!
3436

3537
1. To start the installation wizard, assume sufficient privileges, and double-click the installer icon. If prompted, provide a password. (In some versions of Windows, to invoke the installer with administrator privileges, you must select **Run as Administrator** from the installer icon's context menu.)
3638

product_docs/docs/pgd/5/data_migration/edbloader.mdx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
title: EDB*Loader and PGD
33
navTitle: EDB*Loader
44
description: EDB*Loader is a high-speed data loading utility for EDB Postgres Advanced Server.
5+
deepToC: true
56
---
67

78
[EDB\*Loader](/epas/latest/database_administration/02_edb_loader/) is a high-speed data loading utility for EDB Postgres Advanced Server. It provides an interface compatible with Oracle databases, allowing you to load data into EDB Postgres Advanced Server. It's designed to load large volumes of data into EDB Postgres Advanced Server quickly and efficiently.
@@ -14,6 +15,9 @@ As EDB\*Loader is a utility for EDB Postgres Advanced Server, it's available for
1415

1516
### Replication and EDB\*Loader
1617

17-
As with EDB Postgres Advanced Server, EDB\*Loader works with PGD in a replication environment. But, unlike EDB Postgres Advanced Server with physical replication, it isn't possible to use the [direct path load method](/epas/latest/database_administration/02_edb_loader/invoking_edb_loader/direct_path_load/) to load data into the replica nodes. Only the node connected to by EDB\*Loader gets the data that EDB\*Loader is loading because the direct path load method skips use of the WAL, upon which logical replication relies.
18+
As with EDB Postgres Advanced Server, EDB\*Loader works with PGD in a replication environment. You cannot use the direct load path method because the [direct path load method](/epas/latest/database_administration/02_edb_loader/invoking_edb_loader/direct_path_load/) skips use of the WAL, upon which all replication relies. That means that only the node connected to by EDB\*Loader gets the data that EDB\*Loader is loading and no data replicates to the other nodes.
19+
20+
With PGD, you can make use of EDB\*loader's direct load path method by running it independently on each node. You can perform this either on one node at a time or in parallel to all nodes, depending on the use case. When using the direct path load method on multiple nodes, it's important to ensure there are no other writes happening to the table concurrently as this can result in inconsistencies.
21+
22+
1823

19-
With PGD it's possible to run the direct load path method to each node. This can be performed on one node at a time or in parallel to all nodes, depending on the use case. When doing this, it's important to ensure there are no other writes happening to the table concurrently as this can result in inconsistencies.

product_docs/docs/pgd/5/monitoring/sql.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -573,10 +573,10 @@ From time to time, Raft consensus starts a new election to define a
573573
new `RAFT_LEADER`. During an election, there might be an intermediary
574574
situation where there's no `RAFT_LEADER`, and some of the nodes consider
575575
themselves as `RAFT_CANDIDATE`. The whole election can't take longer
576-
than `bdr.raft_election_timeout` (by default it's set to 6 seconds). If
576+
than `bdr.raft_global_election_timeout` (by default it's set to 6 seconds). If
577577
the query above returns an in-election situation, then wait for
578-
`bdr.raft_election_timeout`, and run the query again. If after
579-
`bdr.raft_election_timeout` has passed and some the listed conditions are
578+
`bdr.raft_global_election_timeout`, and run the query again. If after
579+
`bdr.raft_global_election_timeout` has passed and some the listed conditions are
580580
still not met, then Raft consensus isn't working.
581581

582582
Raft consensus might not be working correctly on only a single node.
@@ -587,15 +587,15 @@ make sure that:
587587
- All PGD nodes are accessible to each other through both regular and
588588
replication connections (check file `pg_hba.conf`).
589589
- PGD versions are the same on all nodes.
590-
- `bdr.raft_election_timeout` is the same on all nodes.
590+
- `bdr.raft_global_election_timeout` is the same on all nodes.
591591

592592
In some cases, especially if nodes are geographically distant from each
593593
other or network latency is high, the default value of
594-
`bdr.raft_election_timeout` (6 seconds) might not be enough. If Raft
594+
`bdr.raft_global_election_timeout` (6 seconds) might not be enough. If Raft
595595
consensus is still not working even after making sure everything is
596-
correct, consider increasing `bdr.raft_election_timeout` to 30
596+
correct, consider increasing `bdr.raft_global_election_timeout` to 30
597597
seconds on all nodes. For PGD 3.6.11 and later, setting
598-
`bdr.raft_election_timeout` requires only a server reload.
598+
`bdr.raft_global_election_timeout` requires only a server reload.
599599

600600
Given how Raft consensus affects cluster operational tasks, and also as
601601
Raft consensus is directly responsible for advancing the group slot,

product_docs/docs/pgd/5/reference/functions.mdx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ Returns the current subscription statistics.
4646

4747
## System and progress information parameters
4848

49-
PGD exposes some parameters that you can query using `SHOW` in psql
50-
or using `PQparameterStatus` (or equivalent) from a client
51-
application.
49+
PGD exposes some parameters that you can query directly in SQL using e.g.
50+
`SHOW` or the `current_setting()` function, and/or using `PQparameterStatus`
51+
(or equivalent) from a client application.
5252

5353
### `bdr.local_node_id`
5454

@@ -68,8 +68,10 @@ becomes remotely visible.
6868

6969
### `transaction_id`
7070

71-
As soon as Postgres assigns a transaction id, if CAMO is enabled, this parameter is
72-
updated to show the transaction id just assigned.
71+
If a CAMO transaction is in progress, `transaction_id` will be updated to show
72+
the assigned transaction id. Note that this parameter can only be queried
73+
using `PQparameterStatus` or equivalent. See section [Application use](../durability/camo#application-use)
74+
for a usage example.
7375

7476
### `bdr.is_node_connected`
7577

@@ -245,7 +247,7 @@ with full voting rights.
245247

246248
If `wait_for_completion` is false, the request is served on
247249
a best-effort basis. If the node can't become a leader in the
248-
`bdr.raft_election_timeout` period, then some other capable node
250+
`bdr.raft_global_lection_timeout` period, then some other capable node
249251
becomes the leader again. Also, the leadership can change over the
250252
period of time per Raft protocol. A `true` return result indicates
251253
only that the request was submitted successfully.

product_docs/docs/pgd/5/reference/index.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@
160160
"bdrglobal_keepalives_count": "/pgd/latest/reference/pgd-settings#bdrglobal_keepalives_count",
161161
"bdrglobal_tcp_user_timeout": "/pgd/latest/reference/pgd-settings#bdrglobal_tcp_user_timeout",
162162
"bdrraft_global_election_timeout": "/pgd/latest/reference/pgd-settings#bdrraft_global_election_timeout",
163-
"bdrraft_local_election_timeout": "/pgd/latest/reference/pgd-settings#bdrraft_local_election_timeout",
163+
"bdrraft_group_election_timeout": "/pgd/latest/reference/pgd-settings#bdrraft_group_election_timeout",
164164
"bdrraft_response_timeout": "/pgd/latest/reference/pgd-settings#bdrraft_response_timeout",
165165
"bdrraft_keep_min_entries": "/pgd/latest/reference/pgd-settings#bdrraft_keep_min_entries",
166166
"bdrraft_log_min_apply_duration": "/pgd/latest/reference/pgd-settings#bdrraft_log_min_apply_duration",

product_docs/docs/pgd/5/reference/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ The reference section is a definitive listing of all functions, views, and comma
228228
* [`bdr.global_tcp_user_timeout`](pgd-settings#bdrglobal_tcp_user_timeout)
229229
### [Internal settings - Raft timeouts](pgd-settings#internal-settings---raft-timeouts)
230230
* [`bdr.raft_global_election_timeout`](pgd-settings#bdrraft_global_election_timeout)
231-
* [`bdr.raft_local_election_timeout`](pgd-settings#bdrraft_local_election_timeout)
231+
* [`bdr.raft_group_election_timeout`](pgd-settings#bdrraft_group_election_timeout)
232232
* [`bdr.raft_response_timeout`](pgd-settings#bdrraft_response_timeout)
233233
### [Internal settings - Other Raft values](pgd-settings#internal-settings---other-raft-values)
234234
* [`bdr.raft_keep_min_entries`](pgd-settings#bdrraft_keep_min_entries)

product_docs/docs/pgd/5/reference/pgd-settings.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ To account for network failures, the Raft consensus protocol implements timeouts
579579
for elections and requests. This value is used when a request is
580580
being sent to the global (top-level) group. The default is 6 seconds (6s).
581581

582-
### `bdr.raft_local_election_timeout`
582+
### `bdr.raft_group_election_timeout`
583583

584584
To account for network failures, the Raft consensus protocol implements timeouts
585585
for elections and requests. This value is used when a request is
@@ -589,7 +589,7 @@ being sent to the sub-group. The default is 3 seconds (3s).
589589

590590
For responses, the settings of
591591
[`bdr.raft_global_election_timeout`](#bdrraft_global_election_timeout) and
592-
[`bdr.raft_local_election_timeout`](#bdrraft_local_election_timeout) are used
592+
[`bdr.raft_group_election_timeout`](#bdrraft_group_election_timeout) are used
593593
as appropriate. You can override this behavior by setting
594594
this variable. The setting of `bdr.raft_response_timeout` must be less than
595595
either of the election timeout values. Set this variable to -1 to disable the override.

product_docs/docs/tde/15/index.mdx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ Data encryption and decryption is managed by the database and doesn't require ap
7575

7676
EDB Postgres Advanced Server and EDB Postgres Extended Server provide hooks to key management that's external to the database. These hooks allow for simple passphrase encrypt/decrypt or integration with enterprise key management solutions. See [Securing the data encryption key](./key_stores) for more information.
7777

78-
### How does TDE encrypt data?
78+
### How does TDE encrypt data?
79+
80+
EDB TDE uses [OpenSSL](https://openssl-library.org/) to encrypt data files with the AES encryption algorithm. In Windows systems, TDE uses [OpenSSL 3](https://docs.openssl.org/3.0/). In Linux systems, TDE uses the OpenSSL version installed in the host operating system. To check the installed version, run `openssl version`. For more information, see the [OpenSSL documentation](https://docs.openssl.org/master/). If you're using a custom build not provided by the OpenSSL community, consult your vendor's documentation.
7981

8082
Starting with version 16, EDB TDE introduces the option to choose between AES-128 and AES-256 encryption algorithms during the initialization of the Postgres cluster. The choice between AES-128 and AES-256 hinges on balancing performance and security requirements. AES-128 is commonly advised for environments where performance efficiency and lower power consumption are pivotal, making it suitable for most applications. Conversely, AES-256 is recommended for scenarios demanding the highest level of security, often driven by regulatory mandates.
8183

0 commit comments

Comments
 (0)