Previous commit was a hack which *always* batched where possible, this is a more sophisticated opt-in varaint, with a timeout sanity check. Final performance for cleaning up 1M pays/forwards/invoices: ``` $ time l1-cli autoclean-once succeededpays 1 { "autoclean": { "succeededpays": { "cleaned": 1000000, "uncleaned": 26895 } } } real 6m9.828s user 0m0.003s sys 0m0.001s $ time l2-cli autoclean-once succeededforwards 1 { "autoclean": { "succeededforwards": { "cleaned": 1000000, "uncleaned": 40 } } } real 3m20.789s user 0m0.004s sys 0m0.001s $ time l3-cli autoclean-once paidinvoices 1 { "autoclean": { "paidinvoices": { "cleaned": 1000000, "uncleaned": 0 } } } real 6m47.941s user 0m0.001s sys 0m0.000s ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: JSON-RPC: `batching` command to allow database transactions to cross multiple back-to-back JSON commands.
1.3 KiB
lightning-batching -- Command to allow database batching.
SYNOPSIS
batching enable
DESCRIPTION
The batching RPC command allows (but does not guarantee!) database commitments to be deferred when multiple commands are issued on this RPC connection. This is only useful if many commands are being given at once, in which case it can offer a performance improvement (the cost being that if there is a crash, it's unclear how many of the commands will have been persisted).
enable is true to enable batching, false to disable it (the default).
EXAMPLE JSON REQUEST
{
"id": 82,
"method": "batching",
"params": {
"enable": true
}
}
RETURN VALUE
On success, an empty object is returned.
On failure, one of the following error codes may be returned:
- -32602: Error in given parameters.
AUTHOR
Rusty Russell <rusty@blockstream.com> wrote the initial version of this man page.
RESOURCES
Main web site: https://github.com/ElementsProject/lightning comment: # ( SHA256STAMP:326e5801f65998e13e909d8b682e9fbc9824f3a43aa7da1d76b871882e52f293)