-
Notifications
You must be signed in to change notification settings - Fork 26
DOC-6610 - Automatic Ledger Recovery: includes updates to node mainte… #2342
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: release/platform/4.13
Are you sure you want to change the base?
Changes from 3 commits
95a9362
89dc693
8c67b3a
dcfa28b
f7d47c1
b311540
ff66cf4
a09c371
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| --- | ||
| date: '2023-11-20' | ||
| menu: | ||
| corda-enterprise-4-13: | ||
| identifier: corda-enterprise-4-13-corda-ledger-recovery-automatic | ||
| name: "Automatic ledger recovery" | ||
| parent: corda-enterprise-4-13-corda-ledger-recovery | ||
| tags: | ||
| - ledger recovery | ||
|
|
||
| title: Automatic ledger recovery | ||
| weight: 900 | ||
| --- | ||
|
|
||
| # Automatic ledger recovery | ||
|
|
||
| [Ledger recovery]({{< relref "ledger-recovery.md" >}}) was introduced to complement normal backup and recovery process. Ledger recovery involves using [the Ledger Recovery flow]({{< relref "ledger-recovery-flow.md" >}}) to enable a node to restore transactions from its peer nodes in the event of local data loss. | ||
|
|
||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I know i mentioned we are not supporting the general system flow. But i guess as configuration deals in system flows we need to introduce the term. Need also explain the concepts of supercedes, incase default not good enough for user. i.e. another flow can supercede the recoveryflow |
||
| *Automatic ledger recovery* enables ledger recovery to automatically run as a system flow at the startup of a node. This is done to ensure that the node will synchronize with the rest of its network on a regular basis, at startup, before proceeding to process user and customer CorDapp flows. Any time a node is restarted, the first thing it will do is identify any inconsistencies and repair them automatically (where possible). Any other flows are deferred until the ledger recovery flow is complete. | ||
|
|
||
| To turn on automatic ledger recovery, you must at a minimum: | ||
|
|
||
| 1. For the [node configuration]({{< relref "../setup/corda-configuration-fields.md" >}}), inside *[enterpriseConfiguration]({{< relref "../setup/corda-configuration-fields.md#enterpriseconfiguration" >}})*, configure `runSystemFlowsAtStartup` to be `true`. | ||
| 2. Specify a value for `recoveryMaximumBackupInterval`. | ||
|
|
||
| The following example shows the minimum configuration required to enable automatic ledger recovery: | ||
|
|
||
| ```json | ||
| enterpriseConfiguration = { | ||
| runSystemFlowsAtStartup = true | ||
| ledgerRecoveryConfiguration = { | ||
| recoveryMaximumBackupInterval = 15m | ||
| } | ||
| } | ||
| ``` | ||
|
|
||
| Note that instead of using the `recoveryMaximumBackupInterval` node parameter, the `recoveryMaximumBackupInterval` [network parameter]({{< relref "../../network/available-network-parameters#recoverymaximumbackupinterval" >}}) can be used. | ||
|
|
||
| The metric `EnterpriseLedgerRecoveryFlow.RecoveryResults` is returned at the end automatic ledger recovery: | ||
|
|
||
| - `EnterpriseLedgerRecoveryFlow.RecoveryResults.TotalRecoveredRecords` - Long; total number of recovered transaction distribution records. For the purpose of recovery counting, | ||
| there is a one-to-one association with a single transaction on a node. | ||
| - `EnterpriseLedgerRecoveryFlow.RecoveryResults.TotalRecoveredTransactions` - Long; total number of recovered transactions. This may be less than the total number of distribution records | ||
| if there are any transactions that already exist in the recovering node's database. | ||
| - `EnterpriseLedgerRecoveryFlow.RecoveryResults.TotalRecoveredInFlightTransactions` - Long; total number of in-flight transactions recovered where the `alsoFinalize` option has been specified. | ||
| - `EnterpriseLedgerRecoveryFlow.RecoveryResults.TotalErrors` - | ||
Uh oh!
There was an error while loading. Please reload this page.