Disable coalescing of cached extents.

Extent splitting and coalescing is a major component of large allocation
overhead, and disabling coalescing of cached extents provides a simple
and effective hysteresis mechanism.  Once two-phase purging is
implemented, it will probably make sense to leave coalescing disabled
for the first phase, but coalesce during the second phase.
This commit is contained in:
Jason Evans
2017-02-12 23:18:57 -08:00
parent c1ebfaa673
commit 2dfc5b5aac
4 changed files with 43 additions and 24 deletions

View File

@@ -21,7 +21,8 @@ size_t extent_size_quantize_ceil(size_t size);
ph_proto(, extent_heap_, extent_heap_t, extent_t)
bool extents_init(tsdn_t *tsdn, extents_t *extents, extent_state_t state);
bool extents_init(tsdn_t *tsdn, extents_t *extents, extent_state_t state,
bool try_coalesce);
extent_state_t extents_state_get(const extents_t *extents);
size_t extents_npages_get(extents_t *extents);
extent_t *extents_evict(tsdn_t *tsdn, extents_t *extents, size_t npages_min);