Skip to content

Commit db966fe

Browse files
committed
Rebase and address Ping commnt
Signed-off-by: hwware <[email protected]>
1 parent 806bae1 commit db966fe

File tree

4 files changed

+12
-22
lines changed

4 files changed

+12
-22
lines changed

src/config.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2509,7 +2509,7 @@ static int updateMaxmemoryReserved(const char **err) {
25092509
server.maxmemory_reserved_scale = 60;
25102510
}
25112511
}
2512-
server.maxmemory_available = (unsigned long long)server.maxmemory / 100.0 * (100 - server.maxmemory_reserved_scale);
2512+
calculateMaxAvailableMemory();
25132513
return 1;
25142514
}
25152515

@@ -2524,8 +2524,7 @@ static int updateMaxmemory(const char **err) {
25242524
"depending on the maxmemory-policy.",
25252525
server.maxmemory, used);
25262526
}
2527-
server.maxmemory_available =
2528-
(unsigned long long)server.maxmemory / 100.0 * (100 - server.maxmemory_reserved_scale);
2527+
calculateMaxAvailableMemory();
25292528
startEvictionTimeProc();
25302529
}
25312530
return 1;

src/evict.c

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -405,8 +405,9 @@ int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, float *lev
405405

406406
if (server.maxmemory_reserved_scale) {
407407
if (mem_reported <= server.maxmemory_available && !level) return C_OK;
408-
} else if (mem_reported <= server.maxmemory && !level)
408+
} else if (mem_reported <= server.maxmemory && !level) {
409409
return C_OK;
410+
}
410411

411412
/* Remove the size of replicas output buffers and AOF buffer from the
412413
* count of used memory. */
@@ -416,28 +417,16 @@ int getMaxmemoryState(size_t *total, size_t *logical, size_t *tofree, float *lev
416417

417418
/* Compute the ratio of memory usage. */
418419
if (level) {
419-
if (server.maxmemory_reserved_scale)
420-
*level = (float)mem_used / (float)server.maxmemory_available;
421-
else
422-
*level = (float)mem_used / (float)server.maxmemory;
420+
*level = (float)mem_used / (float)server.maxmemory_available;
423421
}
424422

425-
if (server.maxmemory_reserved_scale) {
426-
if (mem_reported <= server.maxmemory_available) return C_OK;
427-
} else if (mem_reported <= server.maxmemory)
428-
return C_OK;
423+
if (mem_reported <= server.maxmemory_available) return C_OK;
429424

430425
/* Check if we are still over the memory limit. */
431-
if (server.maxmemory_reserved_scale) {
432-
if (mem_used <= server.maxmemory_available) return C_OK;
433-
} else if (mem_used <= server.maxmemory)
434-
return C_OK;
426+
if (mem_used <= server.maxmemory_available) return C_OK;
435427

436428
/* Compute how much memory we need to free. */
437-
if (server.maxmemory_reserved_scale) {
438-
mem_tofree = mem_used - server.maxmemory_available;
439-
} else
440-
mem_tofree = mem_used - server.maxmemory;
429+
mem_tofree = mem_used - server.maxmemory_available;
441430

442431
if (logical) *logical = mem_used;
443432
if (tofree) *tofree = mem_tofree;

src/server.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2622,8 +2622,7 @@ void initServer(void) {
26222622
resetReplicationBuffer();
26232623

26242624
if (server.maxmemory) {
2625-
server.maxmemory_available =
2626-
(unsigned long long)server.maxmemory / 100.0 * (100 - server.maxmemory_reserved_scale);
2625+
calculateMaxAvailableMemory();
26272626
}
26282627

26292628
/* Make sure the locale is set on startup based on the config file. */

src/server.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3012,6 +3012,9 @@ void trimStringObjectIfNeeded(robj *o, int trim_small_values);
30123012
static inline int canUseSharedObject(void) {
30133013
return server.maxmemory == 0 || !(server.maxmemory_policy & MAXMEMORY_FLAG_NO_SHARED_INTEGERS);
30143014
}
3015+
static inline void calculateMaxAvailableMemory(void) {
3016+
server.maxmemory_available = (unsigned long long)server.maxmemory / 100.0 * (100 - server.maxmemory_reserved_scale);
3017+
}
30153018
#define sdsEncodedObject(objptr) (objptr->encoding == OBJ_ENCODING_RAW || objptr->encoding == OBJ_ENCODING_EMBSTR)
30163019

30173020
/* Synchronous I/O with timeout */

0 commit comments

Comments
 (0)