From 3e37f1467120f6f7ffb884467a12a9b2783f53d8 Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Wed, 5 Feb 2025 20:05:35 +0200 Subject: [PATCH 1/2] RDoc-3179 Update the Cluster Configuration --- .../distribution/cluster-observer.markdown | 66 ++++ .../cluster-configuration.markdown | 281 ++++++++++++++++++ 2 files changed, 347 insertions(+) create mode 100644 Documentation/6.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown create mode 100644 Documentation/6.2/Raven.Documentation.Pages/server/configuration/cluster-configuration.markdown diff --git a/Documentation/6.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown b/Documentation/6.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown new file mode 100644 index 0000000000..b1f917b328 --- /dev/null +++ b/Documentation/6.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown @@ -0,0 +1,66 @@ +# Cluster Observer +--- + +{NOTE: } + +* The primary goal of the `Cluster Observer` is to maintain the [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor) of each database in the cluster. + +* This observer is always running on the [Leader](../../../server/clustering/rachis/cluster-topology#leader) node. + +* In this page: + * [Operation flow](../../../server/clustering/distribution/cluster-observer#operation-flow) + * [Interacting with the Cluster Observer](../../../server/clustering/distribution/cluster-observer#interacting-with-the-cluster-observer) + +{NOTE/} + +--- + +{PANEL: Operation flow} + +* To maintain the Replication Factor, every newly elected [Leader](../../../server/clustering/rachis/cluster-topology#leader) starts measuring the health of each node + by creating dedicated maintenance TCP connections to all other nodes in the cluster. + +* Each node reports the current status of _all_ its databases at intervals of [500 milliseconds](../../../server/configuration/cluster-configuration#cluster.workersampleperiodinms) (by default). + The `Cluster Observer` consumes those reports every [1000 milliseconds](../../../server/configuration/cluster-configuration#cluster.supervisorsampleperiodinms) (by default). + +* Upon a **node failure**, the [Dynamic Database Distribution](../../../server/clustering/distribution/distributed-database#dynamic-database-distribution) sequence + will take place in order to ensure that the `Replication Factor` does not change. + + {NOTE: } + + **For example**: + + * Let us assume a five-node cluster with servers A, B, C, D, E. + We create a database with a replication factor of 3 and define an ETL task. + + * The newly created database will be distributed automatically to three of the cluster nodes. + Let's assume it is distributed to B, C and E (so the database group is [B,C,E]), + and the cluster decides that node C is responsible for performing the ETL task. + + * If node C goes offline or is not reachable, the Observer will notice it and relocate the database from node C to another available node. + Meanwhile, the ETL task will fail over to another available node from the Database Group. + + {NOTE/} + + {WARNING: } + + **Note**: + + * The _Cluster Observer_ stores its information **in memory**, so when the `Leader` loses leadership, + the collected reports of the _Cluster Observer_ and its decision log are lost. + + {WARNING/} + +{PANEL/} + +{PANEL: Interacting with the Cluster Observer} + +You can interact with the `Cluster Observer` using the following REST API calls: + +| URL | Method | Query Params | Description | +|-------------------------------------|---------|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `/admin/cluster/observer/suspend` | POST | value=[`bool`] | Setting `false` will suspend the _Cluster Observer_ operation for the current [Leader term](../../../studio/cluster/cluster-view#cluster-nodes-states-&-types-flow). | +| `/admin/cluster/observer/decisions` | GET | | Fetch the log of the recent decisions made by the cluster observer. | +| `/admin/cluster/maintenance-stats` | GET | | Fetch the latest reports of the _Cluster Observer_ | + +{PANEL/} diff --git a/Documentation/6.2/Raven.Documentation.Pages/server/configuration/cluster-configuration.markdown b/Documentation/6.2/Raven.Documentation.Pages/server/configuration/cluster-configuration.markdown new file mode 100644 index 0000000000..266705e91c --- /dev/null +++ b/Documentation/6.2/Raven.Documentation.Pages/server/configuration/cluster-configuration.markdown @@ -0,0 +1,281 @@ +# Configuration: Cluster +--- + +{NOTE: } + +* **Avoid using different cluster configurations across nodes:** + Configuration mismatches can lead to interaction problems between nodes. + +* If you must set different configurations for individual nodes, + we recommend testing the setup in a development environment first to ensure proper interaction between all nodes. + +{NOTE/} + +{NOTE: } + +* In this page: + * Server-wide scope: + [Cluster.CompareExchangeExpiredDeleteFrequencyInSec](../../server/configuration/cluster-configuration#compareexchangeexpireddeletefrequencyinsec) + [Cluster.CompareExchangeTombstonesCleanupIntervalInMin](../../server/configuration/cluster-configuration#compareexchangetombstonescleanupintervalinmin) + [Cluster.ElectionTimeoutInMs](../../server/configuration/cluster-configuration#cluster.electiontimeoutinms) + [Cluster.HardDeleteOnReplacement](../../server/configuration/cluster-configuration#harddeleteonreplacement) + [Cluster.LogHistoryMaxEntries](../../server/configuration/cluster-configuration#loghistorymaxentries) + [Cluster.MaxChangeVectorDistance](../../server/configuration/cluster-configuration#maxchangevectordistance) + [Cluster.MaxClusterTransactionCompareExchangeTombstoneCheckIntervalInMin](../../server/configuration/cluster-configuration#maxclustertransactioncompareexchangetombstonecheckintervalinmin) + [Cluster.MaxSizeOfSingleRaftCommandInMb](../../server/configuration/cluster-configuration#maxsizeofsingleraftcommandinmb) + [Cluster.MaximalAllowedClusterVersion](../../server/configuration/cluster-configuration#maximalallowedclusterversion) + [Cluster.OnErrorDelayTimeInMs](../../server/configuration/cluster-configuration#onerrordelaytimeinms) + [Cluster.OperationTimeoutInSec](../../server/configuration/cluster-configuration#operationtimeoutinsec) + [Cluster.ReceiveFromWorkerTimeoutInMs](../../server/configuration/cluster-configuration#receivefromWorkertimeoutinms) + [Cluster.StatsStabilizationTimeInSec](../../server/configuration/cluster-configuration#statsstabilizationtimeinsec) + [Cluster.SupervisorSamplePeriodInMs](../../server/configuration/cluster-configuration#supervisorsampleperiodinms) + [Cluster.TcpReceiveBufferSizeInBytes](../../server/configuration/cluster-configuration#tcpreceivebuffersizeInbytes) + [Cluster.TcpSendBufferSizeInBytes](../../server/configuration/cluster-configuration#tcpsendbuffersizeinbytes) + [Cluster.TcpTimeoutInMs](../../server/configuration/cluster-configuration#tcptimeoutinms) + [Cluster.TimeBeforeAddingReplicaInSec](../../server/configuration/cluster-configuration#timebeforeaddingreplicainsec) + [Cluster.TimeBeforeMovingToRehabInSec](../../server/configuration/cluster-configuration#timebeforenovingtorehabinsec) + [Cluster.TimeBeforeRotatingPreferredNodeInSec](../../server/configuration/cluster-configuration#timebeforerotatingpreferrednodeinsec) + [Cluster.WorkerSamplePeriodInMs](../../server/configuration/cluster-configuration#workersampleperiodInms) + * Server-wide, or database scope: + [Cluster.DisableAtomicDocumentWrites](../../server/configuration/cluster-configuration#disableatomiccocumentwrites) + [Cluster.MaxClusterTransactionBatchSize](../../server/configuration/cluster-configuration#maxclustertransactionbatchsize) + +{NOTE/} + +--- + +{PANEL: Cluster.CompareExchangeExpiredDeleteFrequencyInSec} + +Time (in seconds) between cleanup of expired compare exchange items. + +- **Type**: `int` +- **Default**: `60` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.CompareExchangeTombstonesCleanupIntervalInMin} + +Time (in minutes) between cleanup of compare exchange tombstones. + +- **Type**: `int` +- **Default**: `10` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.ElectionTimeoutInMs} + +Timeout (in milliseconds) within which the node expects to receive a heartbeat from the leader. + +- **Type**: `int` +- **Default**: `300` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.HardDeleteOnReplacement} + +Set hard/soft delete for a database that was removed by the observer from the cluster topology in order to maintain the replication factor. + +- **Type**: `bool` +- **Default**: `true` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.LogHistoryMaxEntries} + +Maximum number of log entries to keep in the history log table. + +- **Type**: `int` +- **Default**: `2048` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.MaxChangeVectorDistance} + +Exceeding the allowed change vector distance between two nodes will move the lagged node to rehab. + +- **Type**: `long` +- **Default**: `65536` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.MaxClusterTransactionCompareExchangeTombstoneCheckIntervalInMin} + +The maximum interval (in minutes) between checks for compare exchange tombstones that are performed by the cluster-wide transaction mechanism. + +- **Type**: `int` +- **Default**: `5` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.MaxSizeOfSingleRaftCommandInMb} + +EXPERT ONLY: +The maximum allowed size (in megabytes) for a single raft command. + +- **Type**: `int` +- SizeUnit(SizeUnit.Megabytes) +- **Default**: `128` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.MaximalAllowedClusterVersion} + +EXPERT ONLY: +If exceeded, restrict the cluster to the specified version. + +- **Type**: `int?` +- **Default**: `null` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.OnErrorDelayTimeInMs} + +How long the maintenance supervisor waits (in milliseconds) after receiving an exception from a worker before retrying. + +- **Type**: `int` +- **Default**: `5000` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.OperationTimeoutInSec} + +As a cluster node, how long (in seconds) to wait before timing out an operation between two cluster nodes. + +- **Type**: `int` +- **Default**: `15` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.ReceiveFromWorkerTimeoutInMs} + +How long the maintenance supervisor waits (in milliseconds) for a response from a worker before timing out. + +- **Type**: `int` +- **Default**: `5000` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.StatsStabilizationTimeInSec} + +How long to wait (in seconds) for cluster stats to stabilize after a database topology change. + +- **Type**: `int` +- **Default**: `5` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.SupervisorSamplePeriodInMs} + +How long the maintenance supervisor waits (in milliseconds) between sampling the information received from the nodes. + +- **Type**: `int` +- **Default**: `1000` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.TcpReceiveBufferSizeInBytes} + +The size (in bytes) of the TCP connection receive buffer. + +- **Type**: `int` +- **Default**: `32 * 1024` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.TcpSendBufferSizeInBytes} + +The size (in bytes) of the TCP connection send buffer. + +- **Type**: `int` +- **Default**: `32 * 1024` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.TcpTimeoutInMs} + +TCP connection read/write timeout (in milliseconds). + +- **Type**: `int` +- **Default**: `15_000` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.TimeBeforeAddingReplicaInSec} + +The time (in seconds) a database instance must be in a good and responsive state before we add a replica to match the replication factor. + +- **Type**: `int` +- **Default**: `900` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.TimeBeforeMovingToRehabInSec} + +The grace period (in seconds) we give a node before it is moved to rehab. + +- **Type**: `int` +- **Default**: `60` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.TimeBeforeRotatingPreferredNodeInSec} + +The grace period (in seconds) we give the preferred node before moving it to the end of the members list. + +- **Type**: `int` +- **Default**: `5` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.WorkerSamplePeriodInMs} + +The time (in milliseconds) between sampling database information and sending it to the maintenance supervisor. + +- **Type**: `int` +- **Default**: `500` +- **Scope**: Server-wide only + +{PANEL/} + +{PANEL: Cluster.DisableAtomicDocumentWrites} + +EXPERT ONLY: +Disable automatic atomic writes with cluster write transactions. +If set to _true_, will only consider explicitly added compare exchange values to validate cluster wide transactions. + +- **Type**: `bool` +- **Default**: `false` +- **Scope**: Server-wide or per database + +{PANEL/} + +{PANEL: Cluster.MaxClusterTransactionBatchSize} + +EXPERT ONLY: +Specifies the maximum size of the cluster transaction batch to be executed on the database at once. + +- **Type**: `int` +- **Default**: `256` +- **Scope**: Server-wide or per database + +{PANEL/} From 33c859ec24818bbcbaaf06403c8c6a316e9676ee Mon Sep 17 00:00:00 2001 From: danielle9897 Date: Wed, 5 Mar 2025 11:29:11 +0200 Subject: [PATCH 2/2] RDoc-3179 fix review comments --- .../distribution/cluster-observer.markdown | 25 +++++++---- .../distribution/cluster-observer.markdown | 25 +++++++---- .../distribution/cluster-observer.markdown | 25 +++++++---- .../distribution/cluster-observer.markdown | 19 +++++--- .../cluster-configuration.markdown | 44 +++++++++---------- 5 files changed, 86 insertions(+), 52 deletions(-) diff --git a/Documentation/4.0/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown b/Documentation/4.0/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown index fdbb95acb7..69ee66623d 100644 --- a/Documentation/4.0/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown +++ b/Documentation/4.0/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown @@ -3,7 +3,8 @@ {NOTE: } -* The primary goal of the `Cluster Observer` is to maintain the [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor) of each database in the cluster. +* The primary goal of the **Cluster Observer** is to monitor the health of each database in the cluster + and adjust its topology to maintain the desired [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor). * This observer is always running on the Leader node. {NOTE/} @@ -38,17 +39,25 @@ The _Cluster Observer_ stores its information **in memory**, so when the `Leader | `/admin/cluster/maintenance-stats` | GET | | Fetch the latest reports of the _Cluster Observer_ | {PANEL/} -{NOTE: For Example} +{NOTE: } + +**For example**: -* Let us assume a five node cluster, with servers A, B, C, D, E. - We create a database with a replication factor of 3 and define an ETL task. +* Let us assume a five-node cluster with servers A, B, C, D, E. + We create a database with a replication factor of 3 and define an ETL task. * The newly created database will be distributed automatically to three of the cluster nodes. - Let's assume it is distributed to B, C and E (So the database group is [B,C,E]), - and the cluster decides that node C is the responsible for performing the ETL task. + Let's assume it is distributed to B, C, and E (so the database group is [B,C,E]), + and the cluster decides that node C is responsible for performing the ETL task. + +* If node C goes offline or becomes unreachable, the Cluster Observer detects the issue. + Initially: + * After the duration specified in the [Cluster.TimeBeforeMovingToRehabInSec](../../../server/configuration/cluster-configuration#cluster.timebeforemovingtorehabinsec) configuration, + the observer moves node C to rehab mode, allowing time for recovery. + * The ETL task fails over to another available node in the Database Group. + +* If node C remains offline beyond the period specified in the [Cluster.TimeBeforeAddingReplicaInSec](../../../server/configuration/cluster-configuration#cluster.timebeforeaddingreplicainsec) configuration, the observer begins replicating the database to another node in the Database Group as a last resort. -* If node C goes offline or is not reachable, the Observer will notice it and relocate the database from node C to another available node. - Meanwhile the ETL task will failover to be performed by another available node from the Database Group. {NOTE/} ## Related articles diff --git a/Documentation/4.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown b/Documentation/4.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown index be80e177e8..e146c9a54e 100644 --- a/Documentation/4.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown +++ b/Documentation/4.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown @@ -3,7 +3,8 @@ {NOTE: } -* The primary goal of the `Cluster Observer` is to maintain the [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor) of each database in the cluster. +* The primary goal of the **Cluster Observer** is to monitor the health of each database in the cluster + and adjust its topology to maintain the desired [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor). * This observer is always running on the Leader node. {NOTE/} @@ -37,15 +38,23 @@ The _Cluster Observer_ stores its information **in memory**, so when the `Leader | `/admin/cluster/maintenance-stats` | GET | | Fetch the latest reports of the _Cluster Observer_ | {PANEL/} -{NOTE: For Example} +{NOTE: } -* Let us assume a five node cluster, with servers A, B, C, D, E. - We create a database with a replication factor of 3 and define an ETL task. +**For example**: +* Let us assume a five-node cluster with servers A, B, C, D, E. +We create a database with a replication factor of 3 and define an ETL task. + * The newly created database will be distributed automatically to three of the cluster nodes. - Let's assume it is distributed to B, C and E (So the database group is [B,C,E]), - and the cluster decides that node C is the responsible for performing the ETL task. +Let's assume it is distributed to B, C, and E (so the database group is [B,C,E]), +and the cluster decides that node C is responsible for performing the ETL task. + +* If node C goes offline or becomes unreachable, the Cluster Observer detects the issue. + Initially: + * After the duration specified in the [Cluster.TimeBeforeMovingToRehabInSec](../../../server/configuration/cluster-configuration#cluster.timebeforemovingtorehabinsec) configuration, + the observer moves node C to rehab mode, allowing time for recovery. + * The ETL task fails over to another available node in the Database Group. -* If node C goes offline or is not reachable, the Observer will notice it and relocate the database from node C to another available node. - Meanwhile the ETL task will failover to be performed by another available node from the Database Group. +* If node C remains offline beyond the period specified in the [Cluster.TimeBeforeAddingReplicaInSec](../../../server/configuration/cluster-configuration#cluster.timebeforeaddingreplicainsec) configuration, the observer begins replicating the database to another node in the Database Group as a last resort. + {NOTE/} diff --git a/Documentation/5.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown b/Documentation/5.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown index 4dd2ffa41e..797fc73a77 100644 --- a/Documentation/5.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown +++ b/Documentation/5.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown @@ -3,7 +3,8 @@ {NOTE: } -* The primary goal of the `Cluster Observer` is to maintain the [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor) of each database in the cluster. +* The primary goal of the **Cluster Observer** is to monitor the health of each database in the cluster + and adjust its topology to maintain the desired [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor). * This observer is always running on the Leader node. {NOTE/} @@ -37,15 +38,23 @@ The _Cluster Observer_ stores its information **in memory**, so when the `Leader | `/admin/cluster/maintenance-stats` | GET | | Fetch the latest reports of the _Cluster Observer_ | {PANEL/} -{NOTE: For Example} +{NOTE: } + +**For example**: -* Let us assume a five node cluster, with servers A, B, C, D, E. - We create a database with a replication factor of 3 and define an ETL task. +* Let us assume a five-node cluster with servers A, B, C, D, E. + We create a database with a replication factor of 3 and define an ETL task. * The newly created database will be distributed automatically to three of the cluster nodes. - Let's assume it is distributed to B, C and E (So the database group is [B,C,E]), - and the cluster decides that node C is the responsible for performing the ETL task. + Let's assume it is distributed to B, C, and E (so the database group is [B,C,E]), + and the cluster decides that node C is responsible for performing the ETL task. + +* If node C goes offline or becomes unreachable, the Cluster Observer detects the issue. + Initially: + * After the duration specified in the [Cluster.TimeBeforeMovingToRehabInSec](../../../server/configuration/cluster-configuration#cluster.timebeforemovingtorehabinsec) configuration, + the observer moves node C to rehab mode, allowing time for recovery. + * The ETL task fails over to another available node in the Database Group. + +* If node C remains offline beyond the period specified in the [Cluster.TimeBeforeAddingReplicaInSec](../../../server/configuration/cluster-configuration#cluster.timebeforeaddingreplicainsec) configuration, the observer begins replicating the database to another node in the Database Group as a last resort. -* If node C goes offline or is not reachable, the Observer will notice it and relocate the database from node C to another available node. - Meanwhile the ETL task will failover to be performed by another available node from the Database Group. {NOTE/} diff --git a/Documentation/6.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown b/Documentation/6.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown index b1f917b328..61435168f1 100644 --- a/Documentation/6.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown +++ b/Documentation/6.2/Raven.Documentation.Pages/server/clustering/distribution/cluster-observer.markdown @@ -2,8 +2,9 @@ --- {NOTE: } - -* The primary goal of the `Cluster Observer` is to maintain the [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor) of each database in the cluster. + +* The primary goal of the **Cluster Observer** is to monitor the health of each database in the cluster + and adjust its topology to maintain the desired [Replication Factor](../../../server/clustering/distribution/distributed-database#replication-factor). * This observer is always running on the [Leader](../../../server/clustering/rachis/cluster-topology#leader) node. @@ -34,11 +35,17 @@ We create a database with a replication factor of 3 and define an ETL task. * The newly created database will be distributed automatically to three of the cluster nodes. - Let's assume it is distributed to B, C and E (so the database group is [B,C,E]), + Let's assume it is distributed to B, C, and E (so the database group is [B,C,E]), and the cluster decides that node C is responsible for performing the ETL task. - - * If node C goes offline or is not reachable, the Observer will notice it and relocate the database from node C to another available node. - Meanwhile, the ETL task will fail over to another available node from the Database Group. + + * If node C goes offline or becomes unreachable, the Cluster Observer detects the issue. + Initially: + * After the duration specified in the [Cluster.TimeBeforeMovingToRehabInSec](../../../server/configuration/cluster-configuration#cluster.timebeforemovingtorehabinsec) configuration, + the observer moves node C to rehab mode, allowing time for recovery. + * The ETL task fails over to another available node in the Database Group. + + * If node C remains offline beyond the period specified in the [Cluster.TimeBeforeAddingReplicaInSec](../../../server/configuration/cluster-configuration#cluster.timebeforeaddingreplicainsec) configuration, + the observer begins replicating the database to another node in the Database Group as a last resort. {NOTE/} diff --git a/Documentation/6.2/Raven.Documentation.Pages/server/configuration/cluster-configuration.markdown b/Documentation/6.2/Raven.Documentation.Pages/server/configuration/cluster-configuration.markdown index 266705e91c..e8dd0b54bd 100644 --- a/Documentation/6.2/Raven.Documentation.Pages/server/configuration/cluster-configuration.markdown +++ b/Documentation/6.2/Raven.Documentation.Pages/server/configuration/cluster-configuration.markdown @@ -15,30 +15,30 @@ * In this page: * Server-wide scope: - [Cluster.CompareExchangeExpiredDeleteFrequencyInSec](../../server/configuration/cluster-configuration#compareexchangeexpireddeletefrequencyinsec) - [Cluster.CompareExchangeTombstonesCleanupIntervalInMin](../../server/configuration/cluster-configuration#compareexchangetombstonescleanupintervalinmin) + [Cluster.CompareExchangeExpiredDeleteFrequencyInSec](../../server/configuration/cluster-configuration#cluster.compareexchangeexpireddeletefrequencyinsec) + [Cluster.CompareExchangeTombstonesCleanupIntervalInMin](../../server/configuration/cluster-configuration#cluster.compareexchangetombstonescleanupintervalinmin) [Cluster.ElectionTimeoutInMs](../../server/configuration/cluster-configuration#cluster.electiontimeoutinms) - [Cluster.HardDeleteOnReplacement](../../server/configuration/cluster-configuration#harddeleteonreplacement) - [Cluster.LogHistoryMaxEntries](../../server/configuration/cluster-configuration#loghistorymaxentries) - [Cluster.MaxChangeVectorDistance](../../server/configuration/cluster-configuration#maxchangevectordistance) - [Cluster.MaxClusterTransactionCompareExchangeTombstoneCheckIntervalInMin](../../server/configuration/cluster-configuration#maxclustertransactioncompareexchangetombstonecheckintervalinmin) - [Cluster.MaxSizeOfSingleRaftCommandInMb](../../server/configuration/cluster-configuration#maxsizeofsingleraftcommandinmb) - [Cluster.MaximalAllowedClusterVersion](../../server/configuration/cluster-configuration#maximalallowedclusterversion) - [Cluster.OnErrorDelayTimeInMs](../../server/configuration/cluster-configuration#onerrordelaytimeinms) - [Cluster.OperationTimeoutInSec](../../server/configuration/cluster-configuration#operationtimeoutinsec) - [Cluster.ReceiveFromWorkerTimeoutInMs](../../server/configuration/cluster-configuration#receivefromWorkertimeoutinms) - [Cluster.StatsStabilizationTimeInSec](../../server/configuration/cluster-configuration#statsstabilizationtimeinsec) - [Cluster.SupervisorSamplePeriodInMs](../../server/configuration/cluster-configuration#supervisorsampleperiodinms) - [Cluster.TcpReceiveBufferSizeInBytes](../../server/configuration/cluster-configuration#tcpreceivebuffersizeInbytes) - [Cluster.TcpSendBufferSizeInBytes](../../server/configuration/cluster-configuration#tcpsendbuffersizeinbytes) - [Cluster.TcpTimeoutInMs](../../server/configuration/cluster-configuration#tcptimeoutinms) - [Cluster.TimeBeforeAddingReplicaInSec](../../server/configuration/cluster-configuration#timebeforeaddingreplicainsec) - [Cluster.TimeBeforeMovingToRehabInSec](../../server/configuration/cluster-configuration#timebeforenovingtorehabinsec) - [Cluster.TimeBeforeRotatingPreferredNodeInSec](../../server/configuration/cluster-configuration#timebeforerotatingpreferrednodeinsec) - [Cluster.WorkerSamplePeriodInMs](../../server/configuration/cluster-configuration#workersampleperiodInms) + [Cluster.HardDeleteOnReplacement](../../server/configuration/cluster-configuration#cluster.harddeleteonreplacement) + [Cluster.LogHistoryMaxEntries](../../server/configuration/cluster-configuration#cluster.loghistorymaxentries) + [Cluster.MaxChangeVectorDistance](../../server/configuration/cluster-configuration#cluster.maxchangevectordistance) + [Cluster.MaxClusterTransactionCompareExchangeTombstoneCheckIntervalInMin](../../server/configuration/cluster-configuration#cluster.maxclustertransactioncompareexchangetombstonecheckintervalinmin) + [Cluster.MaxSizeOfSingleRaftCommandInMb](../../server/configuration/cluster-configuration#cluster.maxsizeofsingleraftcommandinmb) + [Cluster.MaximalAllowedClusterVersion](../../server/configuration/cluster-configuration#cluster.maximalallowedclusterversion) + [Cluster.OnErrorDelayTimeInMs](../../server/configuration/cluster-configuration#cluster.onerrordelaytimeinms) + [Cluster.OperationTimeoutInSec](../../server/configuration/cluster-configuration#cluster.operationtimeoutinsec) + [Cluster.ReceiveFromWorkerTimeoutInMs](../../server/configuration/cluster-configuration#cluster.receivefromworkertimeoutinms) + [Cluster.StatsStabilizationTimeInSec](../../server/configuration/cluster-configuration#cluster.statsstabilizationtimeinsec) + [Cluster.SupervisorSamplePeriodInMs](../../server/configuration/cluster-configuration#cluster.supervisorsampleperiodinms) + [Cluster.TcpReceiveBufferSizeInBytes](../../server/configuration/cluster-configuration#cluster.tcpreceivebuffersizeinbytes) + [Cluster.TcpSendBufferSizeInBytes](../../server/configuration/cluster-configuration#cluster.tcpsendbuffersizeinbytes) + [Cluster.TcpTimeoutInMs](../../server/configuration/cluster-configuration#cluster.tcptimeoutinms) + [Cluster.TimeBeforeAddingReplicaInSec](../../server/configuration/cluster-configuration#cluster.timebeforeaddingreplicainsec) + [Cluster.TimeBeforeMovingToRehabInSec](../../server/configuration/cluster-configuration#cluster.timebeforemovingtorehabinsec) + [Cluster.TimeBeforeRotatingPreferredNodeInSec](../../server/configuration/cluster-configuration#cluster.timebeforerotatingpreferrednodeinsec) + [Cluster.WorkerSamplePeriodInMs](../../server/configuration/cluster-configuration#cluster.workersampleperiodinms) * Server-wide, or database scope: - [Cluster.DisableAtomicDocumentWrites](../../server/configuration/cluster-configuration#disableatomiccocumentwrites) - [Cluster.MaxClusterTransactionBatchSize](../../server/configuration/cluster-configuration#maxclustertransactionbatchsize) + [Cluster.DisableAtomicDocumentWrites](../../server/configuration/cluster-configuration#cluster.disableatomicdocumentwrites) + [Cluster.MaxClusterTransactionBatchSize](../../server/configuration/cluster-configuration#cluster.maxclustertransactionbatchsize) {NOTE/}