
In some cases bgsave child process can run for a long time exhausting system resources. Although it is possible to kill the bgsave child process from the system shell, sometimes it is not possible allowing OS level access. This PR adds a new subcommand to the BGSAVE command. When user will issue `BGSAVE CANCEL`, it will do one of the 2: 1. In case a bgsave child process is currently running, the child process would be immediately killed thus terminating any save/replication full sync process. 2. In case a bgsave child process is SCHEDULED to run, the scheduled execution will be cancelled. --------- Signed-off-by: ranshid <ranshid@amazon.com> Signed-off-by: ranshid <88133677+ranshid@users.noreply.github.com> Signed-off-by: Ran Shidlansik <ranshid@amazon.com> Signed-off-by: Binbin <binloveplay1314@qq.com> Co-authored-by: Binbin <binloveplay1314@qq.com> Co-authored-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
63 lines
1.7 KiB
JSON
63 lines
1.7 KiB
JSON
{
|
|
"BGSAVE": {
|
|
"summary": "Asynchronously saves the database(s) to disk.",
|
|
"complexity": "O(1)",
|
|
"group": "server",
|
|
"since": "1.0.0",
|
|
"arity": -1,
|
|
"function": "bgsaveCommand",
|
|
"history": [
|
|
[
|
|
"3.2.2",
|
|
"Added the `SCHEDULE` option."
|
|
],
|
|
[
|
|
"8.0.0",
|
|
"Added the `CANCEL` option."
|
|
]
|
|
],
|
|
"command_flags": [
|
|
"NO_ASYNC_LOADING",
|
|
"ADMIN",
|
|
"NOSCRIPT"
|
|
],
|
|
"arguments": [
|
|
{
|
|
"name": "operation",
|
|
"type": "oneof",
|
|
"optional": true,
|
|
"arguments": [
|
|
{
|
|
"name": "schedule",
|
|
"token": "SCHEDULE",
|
|
"type": "pure-token",
|
|
"since": "3.2.2"
|
|
},
|
|
{
|
|
"name": "cancel",
|
|
"token": "CANCEL",
|
|
"type": "pure-token",
|
|
"since": "8.0.0"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"reply_schema": {
|
|
"oneOf": [
|
|
{
|
|
"const": "Background saving started"
|
|
},
|
|
{
|
|
"const": "Background saving scheduled"
|
|
},
|
|
{
|
|
"const": "Background saving cancelled"
|
|
},
|
|
{
|
|
"const": "Scheduled background saving cancelled"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|