Skip to content

Commit d8464ee

Browse files
author
Frannie-Ludmilla
committed
Add new unquarantine procedure + deprecate quarantine
1 parent d7baba2 commit d8464ee

File tree

1 file changed

+40
-1
lines changed

1 file changed

+40
-1
lines changed

modules/ROOT/pages/procedures.adoc

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1056,7 +1056,7 @@ For more information, see the link:{neo4j-docs-base-uri}/cypher-manual/{page-ver
10561056
| *Mode* 3+| WRITE
10571057
|===
10581058

1059-
[role=label--enterprise-edition label--admin-only]
1059+
[role=label--enterprise-edition label--admin-only label--deprecated-2025.01]
10601060
[[procedure_dbms_quarantineDatabase]]
10611061
=== dbms.quarantineDatabase()
10621062

@@ -1076,6 +1076,38 @@ For more information, see the link:{neo4j-docs-base-uri}/cypher-manual/{page-ver
10761076
| *Mode* 3+| DBMS
10771077
|===
10781078

1079+
1080+
[role=label--enterprise-edition label--admin-only]
1081+
[[procedure_dbms_unquarantineDatabase]]
1082+
=== dbms.unquarantineDatabase()
1083+
1084+
1085+
.Details
1086+
|===
1087+
| *Syntax* 3+m| dbms.unquarantineDatabase(server, databaseName, operation) :: ()
1088+
| *Description* 3+a| Remove the quarantine status from a database in a server performing a cleanup `operation`.
1089+
The possible values for the cleanup operation are:
1090+
1091+
* `keepStateKeepStore` -- do nothing, leave store and cluster state as it is,
1092+
* `replaceStateKeepStore` -- join as a new member clearing the current cluster state but keeping the store
1093+
* `replaceStateReplaceStore` -- join as a new member clearing both the current cluster state and the store
1094+
.4+| *Input arguments* | *Name* | *Type* | *Description*
1095+
| `server` | `STRING` | The name or the id of the server where there is the quarantined database.
1096+
| `databaseName` | `STRING` | The name of the database whose quarantine status must be removed.
1097+
| `operation` | `STRING` | Select a cleanup operation to perform while removing the quarantine.
1098+
| *Mode* 3+| DBMS
1099+
|===
1100+
1101+
[NOTE]
1102+
====
1103+
If you choose to clear the current cluster state, the server will try to join as a new member,
1104+
but this joining can succeed if and only if there is a majority of old members "letting" the
1105+
new members in. Let's assume our cluster has a topology with three primaries. If there is only one server
1106+
in `QUARANTINED` mode, then it is safe to choose `replaceStateKeepStore` or `replaceStateReplaceStore`.
1107+
If there are two servers in `QUARANTINED` mode, then you should not use concurrently `replaceStateKeepStore` or
1108+
`replaceStateReplaceStore` for both servers because there would be no majority to let them in.
1109+
====
1110+
10791111
[role=label--admin-only label--deprecated-5.9]
10801112
[[procedure_dbms_upgrade]]
10811113
=== dbms.upgrade()
@@ -1925,6 +1957,13 @@ Replaced by: xref:procedures.adoc#procedure_dbms_routing_getroutingtable[`dbms.r
19251957
Before Neo4j 5.23, the procedure can be run only with the `Admin` privileges. +
19261958
Replaced by xref:clustering/server-syntax.adoc#server-management-syntax[`ENABLE SERVER`].
19271959
1960+
// New in v6
1961+
| xref:procedures.adoc#procedure_dbms_quarantineDatabase[`dbms.quarantineDatabase()`]
1962+
| label:no[]
1963+
| label:yes[]
1964+
| label:admin-only[] label:deprecated[Deprecated in 2025.01] +
1965+
Replaced by procedures.adoc#procedure_dbms_unquarantineDatabase[`dbms.unquarantineDatabase()`]
1966+
19281967
| xref:procedures.adoc#procedure_dbms_setDatabaseAllocator[`dbms.setDatabaseAllocator()`]
19291968
| label:no[]
19301969
| label:yes[]

0 commit comments

Comments
 (0)