From ab62614d30d572029bc622443fe48b3811b7a671 Mon Sep 17 00:00:00 2001 From: Jack Waudby Date: Fri, 6 Dec 2024 12:36:07 +0000 Subject: [PATCH 1/8] Remove 5.x series deprecations and introductions --- modules/ROOT/pages/clustering/databases.adoc | 59 +++----------------- 1 file changed, 9 insertions(+), 50 deletions(-) diff --git a/modules/ROOT/pages/clustering/databases.adoc b/modules/ROOT/pages/clustering/databases.adoc index 649f6b7c6..4cd622e5e 100644 --- a/modules/ROOT/pages/clustering/databases.adoc +++ b/modules/ROOT/pages/clustering/databases.adoc @@ -468,11 +468,11 @@ SHOW DATABASE foo; === Seed from URI This method seeds all servers with an identical seed from an external source, specified by the URI. -The seed can either be a full backup, a differential backup (xref:clustering/databases.adoc#cloud-seed-provider[`CloudSeedProvider`], introduced in Neo4j 5.26), or a dump from an existing database. +The seed can either be a full backup, a differential backup, or a dump from an existing database. The sources of seeds are called _seed providers_. The mechanism is pluggable, allowing new sources of seeds to be supported (see link:https://www.neo4j.com/docs/java-reference/current/extending-neo4j/project-setup/#extending-neo4j-plugin-seed-provider[Java Reference -> Implement custom seed providers] for more information). -The product has built-in support for seed from a mounted file system (file), FTP server, HTTP/HTTPS server, Amazon S3, Google Cloud Storage (from Neo4j 5.25), and Azure Cloud Storage (from Neo4j 5.25). +The product has built-in support for seed from a mounted file system (file), FTP server, HTTP/HTTPS server, Amazon S3, Google Cloud Storage, and Azure Cloud Storage. [NOTE] ==== @@ -504,7 +504,7 @@ To determine the cause of the problem, it is recommended to look at the `debug.l [[file-seed-provider]] ==== FileSeedProvider -label:new[Introduced in 5.26], the `FileSeedProvider` supports: +The `FileSeedProvider` supports: ** `file:` @@ -513,7 +513,6 @@ label:new[Introduced in 5.26], the `FileSeedProvider` supports: The `URLConnectionSeedProvider` supports the following: -** `file:` label:deprecated[Deprecated in 5.26] ** `ftp:` ** `http:` ** `https:` @@ -521,13 +520,13 @@ The `URLConnectionSeedProvider` supports the following: [[cloud-seed-provider]] ==== CloudSeedProvider -label:new[Introduced in 5.25], the `CloudSeedProvider` supports: +The `CloudSeedProvider` supports: ** `s3:` ** `gs:` ** `azb:` -Starting from Neo4j 5.26, the `CloudSeedProvider` supports using xref:backup-restore/modes.adoc#differential-backup[differential backup] files as seeds. +The `CloudSeedProvider` supports using xref:backup-restore/modes.adoc#differential-backup[differential backup] files as seeds. With the provided differential backup file, the `CloudSeedProvider` searches the directory containing differential backup files for a xref:backup-restore/online-backup.adoc#backup-chain[backup chain] ending at the specified differential backup, and then seeds using this backup chain. [.tabbed-example] @@ -573,44 +572,6 @@ CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 'azb://myStorageAcco ====== ===== -[[s3-seed-provider]] -==== S3SeedProvider - -The `S3SeedProvider` supports: - -** `s3:` label:deprecated[Deprecated in 5.26] - - -[NOTE] -==== -Neo4j 5 comes bundled with necessary libraries for AWS S3 connectivity. -Therefore, if you use `S3SeedProvider`,`aws cli` is not required but can be used with the `CloudSeedProvider`. -==== - -The `S3SeedProvider` requires additional configuration. -This is specified with the `seedConfig` option. -This option expects a comma-separated list of configurations. -Each configuration value is specified as a name followed by `=` and the value, as such: - -[source, cypher, role="noplay"] ----- -CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 's3:/myBucket/myBackup.backup', seedConfig: 'region=eu-west-1' } ----- - -`S3SeedProvider` also requires passing in credentials. -These are specified with the `seedCredentials` option. -Seed credentials are securely passed from the Cypher command to each server hosting the database. -For this to work, Neo4j on each server in the cluster must be configured with identical keystores. -This is identical to the configuration required by remote aliases, see xref:database-administration/aliases/remote-database-alias-configuration.adoc#remote-alias-config-DBMS_admin-A[Configuration of DBMS with remote database alias]. -If this configuration is not performed, the `seedCredentials` option fails. - -[source, cypher, role="noplay"] ----- -CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 's3:/myBucket/myBackup.backup', seedConfig: 'region=eu-west-1', seedCredentials: [accessKey];[secretKey] } ----- -Where `accessKey` and `secretKey` are provided by AWS. - - ==== Seed provider reference [cols="1,2,2",options="header"] @@ -620,8 +581,7 @@ Where `accessKey` and `secretKey` are provided by AWS. | URI example | `file:` -| `URLConnectionSeedProvider` label:deprecated[Deprecated in 5.26], + -`FileSeedProvider` label:new[Introduced in 5.26] +| `FileSeedProvider` | `file:/tmp/backup1.backup` | `ftp:` @@ -637,16 +597,15 @@ Where `accessKey` and `secretKey` are provided by AWS. | `\https://myhttp.com/backups/backup1.backup` | `s3:` -| `S3SeedProvider` label:deprecated[Deprecated in 5.26], + -`CloudSeedProvider` label:new[Introduced in 5.25] +| `CloudSeedProvider` | `s3://mybucket/backups/backup1.backup` | `gs:` -| `CloudSeedProvider` label:new[Introduced in 5.25] +| `CloudSeedProvider` | `gs://mybucket/backups/backup1.backup` | `azb:` -| `CloudSeedProvider` label:new[Introduced in 5.25] +| `CloudSeedProvider` | `azb://mystorageaccount.blob/backupscontainer/backup1.backup` |=== From c5628fd31eadae2d87f951ee2d172b715b004a4e Mon Sep 17 00:00:00 2001 From: Jack Waudby Date: Fri, 6 Dec 2024 12:53:45 +0000 Subject: [PATCH 2/8] Add seedRestoreUntil --- modules/ROOT/pages/clustering/databases.adoc | 28 ++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/clustering/databases.adoc b/modules/ROOT/pages/clustering/databases.adoc index 4cd622e5e..d53afafae 100644 --- a/modules/ROOT/pages/clustering/databases.adoc +++ b/modules/ROOT/pages/clustering/databases.adoc @@ -526,8 +526,8 @@ The `CloudSeedProvider` supports: ** `gs:` ** `azb:` -The `CloudSeedProvider` supports using xref:backup-restore/modes.adoc#differential-backup[differential backup] files as seeds. -With the provided differential backup file, the `CloudSeedProvider` searches the directory containing differential backup files for a xref:backup-restore/online-backup.adoc#backup-chain[backup chain] ending at the specified differential backup, and then seeds using this backup chain. +The `CloudSeedProvider` supports using xref:backup-restore/modes.adoc#differential-backup[differential backups] as seeds. +With the provided differential backup, the `CloudSeedProvider` searches the directory containing differential backups for a xref:backup-restore/online-backup.adoc#backup-chain[backup chain] ending at the specified differential backup, and then seeds using this backup chain. [.tabbed-example] ===== @@ -572,6 +572,30 @@ CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 'azb://myStorageAcco ====== ===== +The `CloudSeedProvider` supports seeding up to a specific date or transaction ID using the `seedRestoreUntil` option. + +==== Seed up to a specific date + +In order to seed up to a specific date you need to pass the differential backup that contains the data up to that date. + +[source,shell] +---- +CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 's3:/myBucket/myBackup.backup', seedRestoreUntil: datetime("2019-06-01T18:40:32.142+0100") } +---- + +This will seed the database with transactions committed before the provided timestamp. + +==== Seed up to a specific transaction ID + +In order to seed up to a specific transaction ID you need to pass the differential backup that contains the data up to that transaction ID. + +[source,shell] +---- +CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 's3:/myBucket/myBackup.backup', seedRestoreUntil: 123 } +---- + +This will seed the database with transactions up to, but not including, the transaction 123. + ==== Seed provider reference [cols="1,2,2",options="header"] From 4e0ef85ae3790fd16f2bbaa2282c76007993a24b Mon Sep 17 00:00:00 2001 From: Jack Waudby <33488812+jackwaudby@users.noreply.github.com> Date: Thu, 19 Dec 2024 09:33:33 +0000 Subject: [PATCH 3/8] Update modules/ROOT/pages/clustering/databases.adoc Co-authored-by: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> --- modules/ROOT/pages/clustering/databases.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/clustering/databases.adoc b/modules/ROOT/pages/clustering/databases.adoc index d53afafae..10c6f04dd 100644 --- a/modules/ROOT/pages/clustering/databases.adoc +++ b/modules/ROOT/pages/clustering/databases.adoc @@ -587,7 +587,7 @@ This will seed the database with transactions committed before the provided time ==== Seed up to a specific transaction ID -In order to seed up to a specific transaction ID you need to pass the differential backup that contains the data up to that transaction ID. +To seed up to a specific transaction ID, you need to pass the differential backup that contains the data up to that transaction ID. [source,shell] ---- From 256ae75f094c54d58263138b2a8c17c86726ce95 Mon Sep 17 00:00:00 2001 From: Jack Waudby <33488812+jackwaudby@users.noreply.github.com> Date: Thu, 19 Dec 2024 09:33:43 +0000 Subject: [PATCH 4/8] Update modules/ROOT/pages/clustering/databases.adoc Co-authored-by: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> --- modules/ROOT/pages/clustering/databases.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/clustering/databases.adoc b/modules/ROOT/pages/clustering/databases.adoc index 10c6f04dd..5e66e684c 100644 --- a/modules/ROOT/pages/clustering/databases.adoc +++ b/modules/ROOT/pages/clustering/databases.adoc @@ -594,7 +594,7 @@ To seed up to a specific transaction ID, you need to pass the differential backu CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 's3:/myBucket/myBackup.backup', seedRestoreUntil: 123 } ---- -This will seed the database with transactions up to, but not including, the transaction 123. +This will seed the database with transactions up to, but not including transaction 123. ==== Seed provider reference From f0ca47e1390c2014e05f895022031e0f1a63ecc6 Mon Sep 17 00:00:00 2001 From: Jack Waudby <33488812+jackwaudby@users.noreply.github.com> Date: Thu, 19 Dec 2024 09:33:56 +0000 Subject: [PATCH 5/8] Update modules/ROOT/pages/clustering/databases.adoc Co-authored-by: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> --- modules/ROOT/pages/clustering/databases.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/clustering/databases.adoc b/modules/ROOT/pages/clustering/databases.adoc index 5e66e684c..b34ff2fdf 100644 --- a/modules/ROOT/pages/clustering/databases.adoc +++ b/modules/ROOT/pages/clustering/databases.adoc @@ -576,7 +576,7 @@ The `CloudSeedProvider` supports seeding up to a specific date or transaction ID ==== Seed up to a specific date -In order to seed up to a specific date you need to pass the differential backup that contains the data up to that date. +To seed up to a specific date, you need to pass the differential backup, which contains the data up to that date. [source,shell] ---- From 9abb963b0342dcdfa180b0c4259c9e734518f78d Mon Sep 17 00:00:00 2001 From: Jack Waudby Date: Thu, 19 Dec 2024 09:51:01 +0000 Subject: [PATCH 6/8] Remove labels --- modules/ROOT/pages/clustering/databases.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/ROOT/pages/clustering/databases.adoc b/modules/ROOT/pages/clustering/databases.adoc index b34ff2fdf..b1837f541 100644 --- a/modules/ROOT/pages/clustering/databases.adoc +++ b/modules/ROOT/pages/clustering/databases.adoc @@ -531,7 +531,7 @@ With the provided differential backup, the `CloudSeedProvider` searches the dire [.tabbed-example] ===== -[role=include-with-AWS-S3 label--new-5.25] +[role=include-with-AWS-S3] ====== include::partial$/aws-s3-overrides.adoc[] @@ -546,7 +546,7 @@ CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 's3:/myBucket/myBack ---- ====== -[role=include-with-Google-cloud-storage label--new-5.25] +[role=include-with-Google-cloud-storage] ====== include::partial$/gcs-credentials.adoc[] @@ -558,7 +558,7 @@ include::partial$/gcs-credentials.adoc[] CREATE DATABASE foo OPTIONS { existingData: 'use', seedURI: 'gs:/myBucket/myBackup.backup' } ---- ====== -[role=include-with-Azure-cloud-storage label--new-5.25] +[role=include-with-Azure-cloud-storage] ====== include::partial$/azb-credentials.adoc[] From b8f3f38a68c85a40b4b1d2d80325575d6041c2af Mon Sep 17 00:00:00 2001 From: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> Date: Wed, 8 Jan 2025 12:34:23 +0100 Subject: [PATCH 7/8] Apply suggestions from code review --- modules/ROOT/pages/clustering/databases.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/ROOT/pages/clustering/databases.adoc b/modules/ROOT/pages/clustering/databases.adoc index 0de100540..6209a14dc 100644 --- a/modules/ROOT/pages/clustering/databases.adoc +++ b/modules/ROOT/pages/clustering/databases.adoc @@ -517,6 +517,8 @@ The `URLConnectionSeedProvider` supports the following: ** `http:` ** `https:` +Starting from Neo4j 2025.01, the `URLConnectionSeedProvider` does not support `file`. +// This is true for both Cypher 5 and Cypher 25. [[cloud-seed-provider]] ==== CloudSeedProvider @@ -578,7 +580,6 @@ The `CloudSeedProvider` supports seeding up to a specific date or transaction ID To seed up to a specific date, you need to pass the differential backup, which contains the data up to that date. -** `s3:` label:deprecated[Deprecated in 5.26] [source,shell] ---- @@ -608,7 +609,6 @@ This will seed the database with transactions up to, but not including transacti | `file:` | `FileSeedProvider` + -`URLConnectionSeedProvider` label:deprecated[Deprecated in 5.26] | `file:/tmp/backup1.backup` | `ftp:` From ea870ec164f2bf55a53b5d5b171bf137e0b4d3f1 Mon Sep 17 00:00:00 2001 From: NataliaIvakina <82437520+NataliaIvakina@users.noreply.github.com> Date: Wed, 8 Jan 2025 12:55:56 +0100 Subject: [PATCH 8/8] Update modules/ROOT/pages/clustering/databases.adoc --- modules/ROOT/pages/clustering/databases.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/ROOT/pages/clustering/databases.adoc b/modules/ROOT/pages/clustering/databases.adoc index 6209a14dc..92fb4d330 100644 --- a/modules/ROOT/pages/clustering/databases.adoc +++ b/modules/ROOT/pages/clustering/databases.adoc @@ -519,6 +519,7 @@ The `URLConnectionSeedProvider` supports the following: Starting from Neo4j 2025.01, the `URLConnectionSeedProvider` does not support `file`. // This is true for both Cypher 5 and Cypher 25. + [[cloud-seed-provider]] ==== CloudSeedProvider