MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / overMaxmemoryAfterAlloc

Function overMaxmemoryAfterAlloc

src/evict.cpp:538–548  ·  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

536 * return 0 if not. Redis may reject user's requests or evict some keys if used
537 * memory exceeds maxmemory, especially, when we allocate huge memory at once. */
538int overMaxmemoryAfterAlloc(size_t moremem) {
539 if (!g_pserver->maxmemory) return 0; /* No limit. */
540
541 /* Check quickly. */
542 size_t mem_used = zmalloc_used_memory();
543 if (mem_used + moremem <= g_pserver->maxmemory) return 0;
544
545 size_t overhead = freeMemoryGetNotCountedMemory();
546 mem_used = (mem_used > overhead) ? mem_used - overhead : 0;
547 return mem_used + moremem > g_pserver->maxmemory;
548}
549
550/* The evictionTimeProc is started when "maxmemory" has been breached and
551 * 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