MCPcopy Create free account
hub / github.com/F-Stack/f-stack / overMaxmemoryAfterAlloc

Function overMaxmemoryAfterAlloc

app/redis-6.2.6/src/evict.c:418–428  ·  view source on GitHub ↗

Return 1 if used memory is more than maxmemory after allocating more memory, * return 0 if not. Redis may reject user's requests or evict some keys if used * memory exceeds maxmemory, especially, when we allocate huge memory at once. */

Source from the content-addressed store, hash-verified

416 * return 0 if not. Redis may reject user's requests or evict some keys if used
417 * memory exceeds maxmemory, especially, when we allocate huge memory at once. */
418int overMaxmemoryAfterAlloc(size_t moremem) {
419 if (!server.maxmemory) return 0; /* No limit. */
420
421 /* Check quickly. */
422 size_t mem_used = zmalloc_used_memory();
423 if (mem_used + moremem <= server.maxmemory) return 0;
424
425 size_t overhead = freeMemoryGetNotCountedMemory();
426 mem_used = (mem_used > overhead) ? mem_used - overhead : 0;
427 return mem_used + moremem > server.maxmemory;
428}
429
430/* The evictionTimeProc is started when "maxmemory" has been breached and
431 * could not immediately be resolved. This will spin the event loop with short

Callers 1

dictExpandAllowedFunction · 0.85

Calls 2

zmalloc_used_memoryFunction · 0.85

Tested by

no test coverage detected