From e972def5609134483403892374a615d90fd9509f Mon Sep 17 00:00:00 2001 From: nidhibhammar <59045594+nidhibhammar@users.noreply.github.com> Date: Mon, 20 Nov 2023 10:14:18 +0530 Subject: [PATCH 1/7] BigAnimal - Added supported region as per UPM-27095 --- .../release/overview/03a_region_support/index.mdx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/product_docs/docs/biganimal/release/overview/03a_region_support/index.mdx b/product_docs/docs/biganimal/release/overview/03a_region_support/index.mdx index 4c5d1c4ac03..f5d060891d7 100644 --- a/product_docs/docs/biganimal/release/overview/03a_region_support/index.mdx +++ b/product_docs/docs/biganimal/release/overview/03a_region_support/index.mdx @@ -63,12 +63,12 @@ When using AWS, you can create clusters in the following regions. #### North America (NA) -| Cloud region | Short name | -| ------------------------ | -------------- | -| Canada (Central) | ca-central-1 | -| US East (N. Virginia) | us-east-1 | -| US East (Ohio) | us-east-2 | -| US West (Oregon) | us-west-2 | +| Cloud region | Short name | +| --------------------- | ------------ | +| Canada (Central) | ca-central-1 | +| US East (N. Virginia) | us-east-1 | +| US East (Ohio) | us-east-2 | +| US West (Oregon) | us-west-2 | #### Europe, Middle East, and Africa (EMEA) @@ -77,6 +77,7 @@ When using AWS, you can create clusters in the following regions. | Europe (Frankfurt) | eu-central-1 | | Europe (Ireland) | eu-west-1 | | Europe (London) | eu-west-2 | +| Europe (Spain) | eu-south-2 | #### Asia and Pacific (APAC) From 2c0dbd6706eb3f232bd90f9135977aa866f109da Mon Sep 17 00:00:00 2001 From: Josh Heyer Date: Wed, 22 Nov 2023 09:09:37 -0700 Subject: [PATCH 2/7] Fix links to stackbuilder from the language pack --- product_docs/docs/language_pack/2/installing/macos.mdx | 2 +- product_docs/docs/language_pack/2/installing/windows.mdx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/product_docs/docs/language_pack/2/installing/macos.mdx b/product_docs/docs/language_pack/2/installing/macos.mdx index 97e54bca963..f670630f196 100644 --- a/product_docs/docs/language_pack/2/installing/macos.mdx +++ b/product_docs/docs/language_pack/2/installing/macos.mdx @@ -7,7 +7,7 @@ On MacOS, EDB provides a graphical interactive installer for Language Pack. To a ## Using Stack Builder -Using PostgreSQL, you can invoke the graphical installer with Stack Builder. See [Using Stack Builder](https://www.enterprisedb.com/docs/supported-open-source/postgresql/installer/03_using_stackbuilder/). +Using PostgreSQL, you can invoke the graphical installer with Stack Builder. See [Using Stack Builder](/supported-open-source/postgresql/installing/using_stackbuilder/). 1. In Stack Builder, follow the prompts until you get to the module selection page. diff --git a/product_docs/docs/language_pack/2/installing/windows.mdx b/product_docs/docs/language_pack/2/installing/windows.mdx index 6dc16a3e4c0..6ee7a43c298 100644 --- a/product_docs/docs/language_pack/2/installing/windows.mdx +++ b/product_docs/docs/language_pack/2/installing/windows.mdx @@ -9,9 +9,9 @@ On Windows, EDB provides a graphical interactive installer for Language Pack. Us ## Using Stack Builder or StackBuilder Plus -If you're using PostgreSQL, you can invoke the graphical installer for Language Pack with Stack Builder. See [Using Stack Builder](https://www.enterprisedb.com/docs/supported-open-source/postgresql/installer/03_using_stackbuilder/). +If you're using PostgreSQL, you can invoke the graphical installer for Language Pack with Stack Builder. See [Using Stack Builder](/supported-open-source/postgresql/installing/using_stackbuilder/). -If you're using EDB Postgres Advanced Server, you can invoke the graphical installer for Language Pack with StackBuilder Plus. See [Using StackBuilder Plus](/epas/latest/epas_inst_windows/installing_advanced_server_with_the_interactive_installer/using_stackbuilder_plus/). +If you're using EDB Postgres Advanced Server, you can invoke the graphical installer for Language Pack with StackBuilder Plus. See [Using StackBuilder Plus](/epas/latest/installing/windows/installing_advanced_server_with_the_interactive_installer/using_stackbuilder_plus/). 1. In Stack Builder or StackBuilder Plus, follow the prompts until you get to the module selection page. From f0ccd6b5635d9a6c8dc54ffdc0af9d1066be6850 Mon Sep 17 00:00:00 2001 From: Simon Notley <43099400+sonotley@users.noreply.github.com> Date: Thu, 23 Nov 2023 10:05:59 +0000 Subject: [PATCH 3/7] Update index.mdx Remove 11 from supported versions and add 16 --- product_docs/docs/pem/9/index.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/product_docs/docs/pem/9/index.mdx b/product_docs/docs/pem/9/index.mdx index 0bcc844d2d9..7e3ab15feca 100644 --- a/product_docs/docs/pem/9/index.mdx +++ b/product_docs/docs/pem/9/index.mdx @@ -68,8 +68,8 @@ Supported versions of Postgres for PEM 9.x: | |**Monitored Instance** |**Backend Instance** | |:-----------------------------------------|:---------------------------|:---------------------| -|**EDB Postgres Advanced Server (EPAS)** |11, 12, 13, 14, 15 |11, 12, 13, 14, 15 | -|**PostgreSQL (PG)** |11, 12, 13, 14, 15 |11, 12, 13, 14, 15 | -|**EDB Postgres Extended Server (PGE)** |11, 12, 13, 14, 15 |12, 13, 14, 15[^1] | +|**EDB Postgres Advanced Server (EPAS)** |12, 13, 14, 15, 16 |12, 13, 14, 15, 16 | +|**PostgreSQL (PG)** |12, 13, 14, 15, 16 |12, 13, 14, 15, 16 | +|**EDB Postgres Extended Server (PGE)** |12, 13, 14, 15, 16 |13, 14, 15, 16[^1] | [^1]: sslutils isn't available for RHEL 7 on IBM Power, so this distribution can't use PGE as a backend. From 6fb4a9f60295b343312918c69d2acb68f54cdf96 Mon Sep 17 00:00:00 2001 From: Arthur Nascimento Date: Fri, 10 Nov 2023 15:42:51 -0300 Subject: [PATCH 4/7] add Bluefin documentation to ASP pages --- .../advanced_storage_pack/configuring.mdx | 2 +- .../advanced_storage_pack/index.mdx | 14 +++++++- .../advanced_storage_pack/installing.mdx | 2 +- .../rel_notes/asp_1.2.1_rel_notes.mdx | 10 ++++++ .../advanced_storage_pack/rel_notes/index.mdx | 1 + .../advanced_storage_pack/using.mdx | 32 +++++++++++++++++++ 6 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 advocacy_docs/pg_extensions/advanced_storage_pack/rel_notes/asp_1.2.1_rel_notes.mdx diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/configuring.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/configuring.mdx index 97d43803c40..48d843547c5 100644 --- a/advocacy_docs/pg_extensions/advanced_storage_pack/configuring.mdx +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/configuring.mdx @@ -3,7 +3,7 @@ title: Configuring Advanced Storage Pack navTitle: Configuring --- -Place the extension module implementing the custom TAM in `shared_preload_libraries` so that it loads early during Postgres startup. This step is needed so that the extension is available before the table based on the given TAM is accessed for the first time. For example, update the parameter in `postgresql.conf` with `autocluster` or `refadata`: +Place the extension module implementing the custom TAM in `shared_preload_libraries` so that it loads early during Postgres startup. This step is needed so that the extension is available before the table based on the given TAM is accessed for the first time. For example, update the parameter in `postgresql.conf` with `autocluster`, `refdata`, or `bluefin`: ```ini shared_preload_libraries = '$libdir/' diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx index 75a96252f82..612ebc9be4b 100644 --- a/advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx @@ -13,7 +13,19 @@ EDB Advanced Storage Pack provides advanced storage options for Postgres databas For tables whose access patterns you know, you might prefer a targeted TAM that makes different tradeoffs. For instance, if a table has a specific usage pattern, you might consider using a specialized TAM that is designed to enhance that usage pattern. -EnterpriseDB offers two TAMs in the Advanced Storage Pack. +EnterpriseDB offers three TAMs in the Advanced Storage Pack. + +## Bluefin + +Bluefin is designed to provide data compaction and delta compression, which makes it particularly useful for storing time-series data, common in IoT and monitoring use cases. + +In its design, UPDATEs and DELETEs are not permitted operations. This allows for a much smaller tuple header, as well as for tuples to be stored as compressed deltas of other tuples, and eagerly freezing of pages as soon as the page is full. The result is that Bluefin tables accept only INSERTs, but they are able to reach a much higher density of tuples per page, leading to faster reads on such append-only tables. + +Due to the lack of DELETE operations, Bluefin is best used together with table partitioning features, allowing older data to be pruned by dropping older, time-range-based, partitions. + +Bluefin is only available for database versions 15 and newer, since it depends on features introduced in PostgreSQL 15. + +See [Bluefin example](using/#bluefin-example) for an example use case. ## Autocluster diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/installing.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/installing.mdx index 550b7aa2fe5..35d8592c385 100644 --- a/advocacy_docs/pg_extensions/advanced_storage_pack/installing.mdx +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/installing.mdx @@ -3,7 +3,7 @@ title: Installing Advanced Storage Pack navTitle: Installing --- -The Advanced Storage Pack is supported on the same platforms as the Postgres distribution you're using. Support for Advanced Storage Pack starts with Postgres 12. For details, see: +The Advanced Storage Pack is supported on the same platforms as the Postgres distribution you're using. Support for Advanced Storage Pack starts with Postgres 12 for Autocluster and Refdata, and with Postgres 15 for Bluefin. For details, see: - [EDB Postgres Advanced Server Product Compatibility](https://www.enterprisedb.com/platform-compatibility#epas) diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/rel_notes/asp_1.2.1_rel_notes.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/rel_notes/asp_1.2.1_rel_notes.mdx new file mode 100644 index 00000000000..8b361ce64e1 --- /dev/null +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/rel_notes/asp_1.2.1_rel_notes.mdx @@ -0,0 +1,10 @@ +--- +title: Release notes for Advanced Storage Pack version 1.2.1 +navTitle: "Version 1.2.1" +--- + +This release of Advanced Storage Pack includes: + +| Type | Description | +| ------- | --------------------------------------- | +| Feature | Bluefin is released for PG/PGE/EPAS 15+ | diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/rel_notes/index.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/rel_notes/index.mdx index 1802a3e9ad8..594e168610d 100644 --- a/advocacy_docs/pg_extensions/advanced_storage_pack/rel_notes/index.mdx +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/rel_notes/index.mdx @@ -11,6 +11,7 @@ about the release that introduced the feature. | Version | Release Date | | --------------------------- | ------------ | +| [1.2.1](asp_1.2.1_rel_notes) | 09 Nov 2023 | | [1.0.0](asp_1.0.0_rel_notes) | 30 Nov 2022 | diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx index 0be70dd73d6..902dc5d981d 100644 --- a/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx @@ -5,6 +5,38 @@ navTitle: Using The following are scenarios where the EDB Advanced Storage Pack TAMs are useful. +## Bluefin example + +Bluefin is best when used with time-range partitioning. The example below shows a table containing logs of trucks, that get inserted periodically when each truck provides updates of its status. + +```sql +CREATE TABLE truck_logs ( + ts TIMESTAMP WITH TIME ZONE, + truck_id INTEGER, + latitude FLOAT, + longitude FLOAT, + elevation INTEGER, + velocity FLOAT, + characteristics JSON, + data JSON +) PARTITION BY RANGE (ts) + USING bluefin; +``` + +Each partition contains one month of data: + +```sql +CREATE TABLE "truck_logs_2023-09" + PARTITION OF truck_logs FOR VALUES FROM ('2023-09-01') TO ('2023-10-01') + USING bluefin; +``` + +One single index is created on each partition: + +```sql +CREATE INDEX "i_truck_logs_2023-09_truck_id_ts" ON "truck_logs_2023-09"(truck_id, ts); +``` + ## Refdata example A scenario where Refdata is useful is creating a reference table of all From 08a2475cd0c8a8e5a8ad51751a8942a0f6beb02c Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan <126472455+djw-m@users.noreply.github.com> Date: Thu, 23 Nov 2023 13:46:55 +0000 Subject: [PATCH 5/7] Apply suggestions from copy-edit review Co-authored-by: Betsy Gitelman --- advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx | 6 +++--- advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx index 612ebc9be4b..28397f918e4 100644 --- a/advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/index.mdx @@ -19,11 +19,11 @@ EnterpriseDB offers three TAMs in the Advanced Storage Pack. Bluefin is designed to provide data compaction and delta compression, which makes it particularly useful for storing time-series data, common in IoT and monitoring use cases. -In its design, UPDATEs and DELETEs are not permitted operations. This allows for a much smaller tuple header, as well as for tuples to be stored as compressed deltas of other tuples, and eagerly freezing of pages as soon as the page is full. The result is that Bluefin tables accept only INSERTs, but they are able to reach a much higher density of tuples per page, leading to faster reads on such append-only tables. +In its design, UPDATE and DELETE operations aren't permitted. This design allows for a much smaller tuple header. It also allows for tuples to be stored as compressed deltas of other tuples and eagerly freezing of pages as soon as the page is full. The result is that Bluefin tables accept only INSERTs, but they are able to reach a much higher density of tuples per page. This ability leads to faster reads on such append-only tables. -Due to the lack of DELETE operations, Bluefin is best used together with table partitioning features, allowing older data to be pruned by dropping older, time-range-based, partitions. +Due to the lack of DELETE operations, Bluefin is best used together with table partitioning features. This combination allows older data to be pruned by dropping older, time-range-based, partitions. -Bluefin is only available for database versions 15 and newer, since it depends on features introduced in PostgreSQL 15. +Bluefin is available only for database versions 15 and later, since it depends on features introduced in PostgreSQL 15. See [Bluefin example](using/#bluefin-example) for an example use case. diff --git a/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx b/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx index 902dc5d981d..7c4832fca7c 100644 --- a/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx +++ b/advocacy_docs/pg_extensions/advanced_storage_pack/using.mdx @@ -7,7 +7,7 @@ The following are scenarios where the EDB Advanced Storage Pack TAMs are useful. ## Bluefin example -Bluefin is best when used with time-range partitioning. The example below shows a table containing logs of trucks, that get inserted periodically when each truck provides updates of its status. +Bluefin is best when used with time-range partitioning. This example shows a table containing logs of trucks that get inserted periodically when each truck provides updates of its status. ```sql CREATE TABLE truck_logs ( From 9ad401c6b75f0701048786b973f0c4761d6d09d4 Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan <126472455+djw-m@users.noreply.github.com> Date: Mon, 27 Nov 2023 14:18:06 +0000 Subject: [PATCH 6/7] Update tde.mdx to sync with docs update --- .../docs/postgres_for_kubernetes/1/tde.mdx | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/product_docs/docs/postgres_for_kubernetes/1/tde.mdx b/product_docs/docs/postgres_for_kubernetes/1/tde.mdx index 22c2f28d9b1..c77a17016f8 100644 --- a/product_docs/docs/postgres_for_kubernetes/1/tde.mdx +++ b/product_docs/docs/postgres_for_kubernetes/1/tde.mdx @@ -158,3 +158,71 @@ For example: - wrap command: `openssl enc -aes-128-cbc -pass pass:temp-pass -e -out %p` - unwrap command: `openssl enc -aes-128-cbc -pass pass:temp-pass -d -in %p` + + +## Example using HashiCorp Vault + +The following example shows how to use HashiCorp Vault to store the encryption +key and use it to activate TDE. The `vault` CLI is used to interact with Vault +and is included by default in the EDB Postgres Advanced Server (EPAS) image. + +First, wherever you have vault running you must enable the Transit secrets +engine and create a key: + +``` shell +vault secrets enable transit +vault write -f transit/keys/pg-tde +``` + +Then, create a secret containing the custom wrap/unwrap commands. The wrap +and unwrap commands will 'wrap' a binary that is in the EPAS image. The +binary will interact with the vault API to encrypt/decrypt the EPAS encryption. + +The binary needs 4 flags: `--host`, `--secret`, `--key` and `--vault-endpoint`. The +`--host` flag is in the format of `http://vault-host:vault-port` and needs to be +provided to reach the Vault. The server`--secret` flag is the name of the Kubernetes +secret that contains the vault token and the `--key` flag is the key in that secret +pointing the vault token. The `--vault-endpoint` flag is the name of the key that +was created inside vault; in the example above it is `pg-tde`. + +If running the Vault operator in Kubernetes the root token can be obtained from the +following two commands: + +```shell +kubectl exec vault-0 -- vault operator init -key-shares=1 -key-threshold=1 -format=json > cluster-keys.json +cat cluster-keys.json | jq -r ".root_token" +``` + +``` shell +kubectl create secret generic -o yaml vault-token \ + --from-literal=wrap="/bin/vault wrap --file %p --host http://vault:8200 --secret vault-token --key token --vault-endpoint pg-tde" \ + --from-literal=unwrap="/bin/vault unwrap --file %p --host http://vault:8200 --secret vault-token --key token --vault-endpoint pg-tde" \ + --from-literal=token="hvs.whatever" +``` + +You can now create a Cluster that is referencing the secrets: + +``` yaml +apiVersion: postgresql.k8s.enterprisedb.io/v1 +kind: Cluster +metadata: + name: hashicorp-vault-tde +spec: + instances: 3 + storage: + size: 1Gi + postgresql: + epas: + tde: + enabled: true + wrapCommand: + name: vault-token + key: wrap + unwrapCommand: + name: vault-token + key: unwrap +``` +Toggle all file notes +Toggle all file annotations +0 comments on commit e6e877a +Comment From 72700379b6ff04bbbeb19d5b9b661329b5cfe9c3 Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan <126472455+djw-m@users.noreply.github.com> Date: Mon, 27 Nov 2023 15:09:52 +0000 Subject: [PATCH 7/7] Fix up - extraneous text --- product_docs/docs/postgres_for_kubernetes/1/tde.mdx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/product_docs/docs/postgres_for_kubernetes/1/tde.mdx b/product_docs/docs/postgres_for_kubernetes/1/tde.mdx index c77a17016f8..3b3fb9b9ccb 100644 --- a/product_docs/docs/postgres_for_kubernetes/1/tde.mdx +++ b/product_docs/docs/postgres_for_kubernetes/1/tde.mdx @@ -222,7 +222,3 @@ spec: name: vault-token key: unwrap ``` -Toggle all file notes -Toggle all file annotations -0 comments on commit e6e877a -Comment