Commit 0afac693 authored by antirez's avatar antirez
Browse files

Modules API: OOM_WARNING flags.

In some modules it may be useful to have an idea about being near to
OOM. Anyway additionally an explicit call to get the fill ratio will be
added in the future.
parent de7de53e
......@@ -1330,6 +1330,9 @@ int RM_GetSelectedDb(RedisModuleCtx *ctx) {
*
* * REDISMODULE_CTX_FLAGS_OOM: Redis is out of memory according to the
* maxmemory setting.
*
* * REDISMODULE_CTX_FLAGS_OOM_WARNING: Less than 25% of memory remains before
* reaching the maxmemory level.
*/
int RM_GetContextFlags(RedisModuleCtx *ctx) {
......@@ -1369,8 +1372,10 @@ int RM_GetContextFlags(RedisModuleCtx *ctx) {
}
/* OOM flag. */
if (getMaxmemoryState(NULL,NULL,NULL,NULL) == C_ERR) {
float level;
if (getMaxmemoryState(NULL,NULL,NULL,&level) == C_ERR) {
flags |= REDISMODULE_CTX_FLAGS_OOM;
if (level > 0.75) flags |= REDISMODULE_CTX_FLAGS_OOM_WARNING;
}
return flags;
......
......@@ -83,6 +83,8 @@
#define REDISMODULE_CTX_FLAGS_EVICT (1<<9)
/* Redis is out of memory according to the maxmemory flag. */
#define REDISMODULE_CTX_FLAGS_OOM (1<<10)
/* Less than 25% of memory available according to maxmemory. */
#define REDISMODULE_CTX_FLAGS_OOM_WARNING (1<<11)
#define REDISMODULE_NOTIFY_GENERIC (1<<2) /* g */
#define REDISMODULE_NOTIFY_STRING (1<<3) /* $ */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment