Skip to content

Commit e524c31

Browse files
committed
merged dev into 5.x
2 parents 9131e1a + c426d90 commit e524c31

File tree

9 files changed

+100
-13
lines changed

9 files changed

+100
-13
lines changed

.github/workflows/docs-deploy-surge.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Use this starter workflow to deploy HTML generated by Antora to surge.sh
22
# Docs are published at <org>-<repo>-<deployid>.surge.sh
3-
3+
#
44
# By default, this workflow runs on completion of a workflow called "Verify docs PR"
5-
5+
#
66
# This workflow expects the triggering workflow to generate an artifact called "docs"
77
# - update the reference to "docs" and "docs.zip" in this workflow if your triggering workflow generates an artifact with a different name
88

@@ -71,7 +71,6 @@ jobs:
7171
- id: unzip-changelog
7272
if: ${{ hashFiles('changelog.zip') != '' }}
7373
run: unzip changelog.zip
74-
7574
- id: get-deploy-id
7675
run: |
7776
deployid=$(<deployid)
@@ -86,7 +85,6 @@ jobs:
8685
run: |
8786
deployurl=$ORG-$REPO-$DEPLOYID.surge.sh
8887
echo "deploy-url=$deployurl" >> $GITHUB_OUTPUT
89-
9088
- uses: actions/setup-node@v4
9189
with:
9290
node-version: lts/*

modules/ROOT/content-nav.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@
148148
*** xref:clustering/monitoring/show-servers-monitoring.adoc[]
149149
*** xref:clustering/monitoring/show-databases-monitoring.adoc[]
150150
*** xref:clustering/monitoring/endpoints.adoc[]
151+
*** xref:clustering/monitoring/status-check.adoc[]
151152
** xref:clustering/disaster-recovery.adoc[]
152153
//** xref:clustering/internals.adoc[]
153154
** xref:clustering/settings.adoc[]

modules/ROOT/pages/authentication-authorization/property-based-access-control.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ CREATE ROLE regularUsers;
77
----
88
////
99

10-
[role=enterprise-edition aura-db-enterprise]
10+
:page-role: enterprise-edition aura-db-enterprise new-5.24
1111
[[property-based-access-control]]
1212
= Property-based access control
1313

modules/ROOT/pages/clustering/index.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ This chapter describes the following:
1919
** xref:clustering/monitoring/show-servers-monitoring.adoc[Monitor servers] -- The tools available for monitoring the servers in a cluster.
2020
** xref:clustering/monitoring/show-databases-monitoring.adoc[Monitor databases] -- The tools available for monitoring the databases in a cluster.
2121
** xref:clustering/monitoring/endpoints.adoc[Monitor cluster endpoints for status information] -- The endpoints and semantics of endpoints used to monitor the health of the cluster.
22+
** xref:clustering/monitoring/status-check.adoc[Cluster status check] label:new[Introduced in 5.24] -- The procedure that checks which databases are up-to-date and can participate in a successful replication.
2223
* xref:clustering/disaster-recovery.adoc[Disaster recovery] -- How to recover a cluster in the event of a disaster.
2324
* xref:clustering/settings.adoc[Settings reference] -- A summary of the most important cluster settings.
2425
* xref:clustering/server-syntax.adoc[Server commands reference] -- Reference of Cypher administrative commands to add and manage servers.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
:description: This section describes how to monitor a database's availability with the help of the cluster status check procedure.
2+
3+
:page-role: enterprise-edition new-5.24
4+
[[cluster-status-check]]
5+
= Cluster status check
6+
7+
Neo4j 5.24 introduces the xref:reference/procedures.adoc#procedure_dbms_cluster_statusCheck[`dbms.cluster.statusCheck()`] procedure, which can be used to monitor the ability to replicate in clustered databases, which in most cases means being able to write to the database.
8+
You can also use the procedure to check which members are up-to-date and can participate in a successful replication.
9+
Therefore, it is useful in determining the fault-tolerance of a clustered database as well.
10+
A third and final function is to determine the leader of the cluster.
11+
12+
[NOTE]
13+
====
14+
The member on which the procedure is called replicates a dummy transaction in the same cluster as the real transactions, and verifies that it can be replicated and applied.
15+
16+
Since the status check doesn't replicate an actual transaction, it's not guaranteed that the database is write available even though the status check reports that it can replicate.
17+
Apart from replication there are other stops in the write path that can potentially block a transaction from being applied, e.g. issues in the database.
18+
However, it tells that the cluster is healthy and in most cases that means that the database is write available.
19+
====
20+
21+
[[procedure-syntax]]
22+
== Syntax
23+
24+
[source, shell]
25+
----
26+
CALL dbms.cluster.statusCheck(databases :: LIST<STRING>, timeoutMilliseconds = null :: INTEGER)
27+
----
28+
29+
* *databases:* the list of databases for which the status check should run.
30+
Providing an empty list runs the status check for all *clustered* databases on that server, i.e. the status check won't run on singles or secondaries.
31+
* *timeoutMilliseconds:* specifies how long the replication may take.
32+
Default value is 1000 milliseconds.
33+
If replication takes longer than this timeout, it will return that replication is unsuccessful.
34+
35+
36+
The procedure returns a row for all primary members of all the requested databases where each row consists of:
37+
38+
* *database:* the database for which the `status check entry` was replicated.
39+
* *serverId:* the server id of each primary member, which did or did not participate in a successful replication of the `status check entry`.
40+
* *serverName:* the server name of each primary member.
41+
* *address:* the Bolt address of each primary member.
42+
* *replicationSuccessful:* indicates if the server (on which the procedure is run) can replicate a transaction.
43+
+
44+
** `TRUE` -- if this server managed to replicate the dummy transaction to a majority of cluster members within the given timeout.
45+
** `FALSE` -- if it failed to replicate within the timeout.
46+
The value is the same column-wise.
47+
A failed replication can either mean a real issue in the cluster (e.g., no leader) or that this server is too far behind in apply and can't replicate.
48+
* *memberStatus:* shows the status of each primary member.
49+
It can be `APPLYING`, `REPLICATING`, or `UNAVAILABLE`.
50+
+
51+
** `APPLYING` means that the member can replicate and is actively applying transactions.
52+
** `REPLICATING` means that the member can participate in replicating, but can't apply.
53+
This state is uncommon, but may happen while waiting for the database to start and accept transactions.
54+
* *recognisedLeader:* shows the server id of the perceived leader of each primary member.
55+
* *recognisedLeaderTerm:* shows the term of the perceived leader of each primary member.
56+
If the members report different leaders, the one with the highest term should be trusted.
57+
* *requester:* is `TRUE` for the server on which the procedure is run, and `FALSE` on the remaining servers.
58+
* *error:* contains the error message if there is one.
59+
An example of an error is that one or more of the requested databases doesn't exist on the requester.
60+
61+
In general, you can use the `replicationSuccessful` field to determine overall write-availability, whereas the `memberStatus` field can be checked in order to see whether the database is fault-tolerant or not.
62+
63+
[NOTE]
64+
====
65+
Members that are `REPLICATING` are good from a data safety point of view.
66+
They can participate in replication and keep the data durably until application.
67+
They are also up-to-date and therefore eligible leaders.
68+
So they add to the fault-tolerance.
69+
70+
Members that are `APPLYING` have all the qualities of `REPLICATING` members, so they too add to the fault-tolerance.
71+
But they are also applying to the database, which is a requirement for writing transactions and reading with bookmarks in a timely manner.
72+
73+
Lastly, `UNAVAILABLE` members are either too far behind or unreachable.
74+
They are unhealthy and cannot add to the fault-tolerance.
75+
====
76+
77+

modules/ROOT/pages/configuration/configuration-settings.adoc

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -363,8 +363,6 @@ m|
363363
[[config_dbms.cluster.discovery.v2.endpoints]]
364364
=== `dbms.cluster.discovery.v2.endpoints`
365365

366-
// label:enterprise-edition[Enterprise Edition]
367-
368366
.dbms.cluster.discovery.v2.endpoints
369367
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
370368
|===
@@ -382,8 +380,6 @@ m|
382380
[[config_dbms.cluster.discovery.version]]
383381
=== `dbms.cluster.discovery.version`
384382

385-
// label:enterprise-edition[Enterprise Edition]
386-
387383
.dbms.cluster.discovery.version
388384
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
389385
|===
@@ -744,7 +740,7 @@ m|+++false+++
744740
|===
745741

746742

747-
[role=label--enterprise-edition]
743+
[role=label--enterprise-edition label--deprecated-5.23]
748744
[[config_initial.dbms.database_allocator]]
749745
=== `initial.dbms.database_allocator`
750746

@@ -3578,8 +3574,6 @@ m|
35783574
[[config_dbms.kubernetes.discovery.v2.service_port_name]]
35793575
=== `dbms.kubernetes.discovery.v2.service_port_name`
35803576

3581-
// label:enterprise-edition[Enterprise Edition]
3582-
35833577
.dbms.kubernetes.discovery.v2.service_port_name
35843578
[frame="topbot", stripes=odd, grid="cols", cols="<1s,<4"]
35853579
|===

modules/ROOT/pages/reference/procedures.adoc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,11 @@ Replaced by: xref:reference/procedures.adoc#procedure_dbms_routing_getroutingtab
524524
Before Neo4j 5.23, the procedure can be run only with the `Admin` privileges. +
525525
Replaced by xref:clustering/server-syntax.adoc#server-management-syntax[`ENABLE SERVER`].
526526

527+
| xref:reference/procedures.adoc#procedure_dbms_setDatabaseAllocator[`dbms.setDatabaseAllocator()`]
528+
| label:no[]
529+
| label:yes[]
530+
| label:admin-only[] label:deprecated[Deprecated in 5.23]
531+
527532
// New in 4.1
528533
| xref:reference/procedures.adoc#procedure_dbms_upgrade[`dbms.upgrade()`]
529534
| label:yes[]
@@ -2224,7 +2229,7 @@ m|DBMS
22242229

22252230

22262231
[[procedure_dbms_setDatabaseAllocator]]
2227-
[role=label--enterprise-edition label--admin-only]
2232+
[role=label--enterprise-edition label--admin-only label--deprecated-5.23]
22282233
.dbms.setDatabaseAllocator()
22292234
[cols="<15s,<85"]
22302235
|===

modules/ROOT/pages/tools/cypher-shell.adoc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,13 @@ The syntax for running Cypher Shell is:
6363
| Exit and report failures at the end of the input when reading from a file.
6464
|
6565

66+
<<<<<<< HEAD
67+
=======
68+
| --enable-autocompletions
69+
| Whether to enable Cypher autocompletions inside the CLI, which are disabled by default.
70+
|
71+
72+
>>>>>>> dev
6673
|--format {auto,verbose,plain}
6774
|Desired output format. Displays the results in tabular format if you use the shell interactively and with minimal formatting if you use it for scripting. +
6875
`verbose` displays results in a tabular format and prints statistics. +

publish.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ site:
77
content:
88
sources:
99
- url: ./
10+
<<<<<<< HEAD
1011
branches: ['3.5', '4.0', '4.1', '4.2', '4.3', '4.4', '5.x']
12+
=======
13+
branches: ['3.5', '4.0', '4.1', '4.2', '4.3', '4.4', 'HEAD']
14+
>>>>>>> dev
1115
edit_url: https://github.com/neo4j/docs-operations/tree/{refname}/{path}
1216
exclude:
1317
- '!**/_includes/*'

0 commit comments

Comments
 (0)