• Nils Goroll's avatar
    Allocate additional log blocks early · 2d497b1a
    Nils Goroll authored
    This, hopefully, is part of a possible solution to the nasty issue #28:
    
    When we do not have a sufficiently large pre-allocated log (log region)
    as determined by objsize_hint in relation to the storage size, we need
    to dynamically allocate disk blocks while we flush the log.
    
    When the log flush includes object deletions (in particular when
    triggered from the disk LRU), we run into a typical deadlock: To
    complete the transaction to free space, we need the space...
    
    This commit is part of an attempt to make this work by allocating
    space early on: When we only have 20% of the log region left, we start
    to reserve more blocks for the log.
    
    The problem can, for example, be reproduced with an objsize_hint of 1MB
    and an actual object size in the oder of 32KB.
    
    Ref #28
    2d497b1a
Name
Last commit
Last update
..
foreign Loading commit data...
tbl Loading commit data...
vtc Loading commit data...
Makefile.am Loading commit data...
VSC_buddy.vsc Loading commit data...
VSC_fellow.vsc Loading commit data...
aux_cache_wrk.c Loading commit data...
bitf.h Loading commit data...
bitsof.h Loading commit data...
buddy.c Loading commit data...
buddy.h Loading commit data...
buddy_storage.c Loading commit data...
buddy_storage.h Loading commit data...
buddy_tune.c Loading commit data...
buddy_tune.h Loading commit data...
buddy_util.h Loading commit data...
buddy_witness.h Loading commit data...
compiler.h Loading commit data...
debug.h Loading commit data...
fcs_states.doth Loading commit data...
fellow_cache.c Loading commit data...
fellow_cache.h Loading commit data...
fellow_cache_storage.h Loading commit data...
fellow_const.h Loading commit data...
fellow_debug.h Loading commit data...
fellow_diag.h Loading commit data...
fellow_errhandling.h Loading commit data...
fellow_hash.c Loading commit data...
fellow_hash.h Loading commit data...
fellow_hashes.h Loading commit data...
fellow_inject.h Loading commit data...
fellow_io.h Loading commit data...
fellow_io_aio.c Loading commit data...
fellow_io_backend.h Loading commit data...
fellow_io_ioctl.c Loading commit data...
fellow_io_ioctl.h Loading commit data...
fellow_io_threads.c Loading commit data...
fellow_io_uring.c Loading commit data...
fellow_log.c Loading commit data...
fellow_log.h Loading commit data...
fellow_log_dbg.c Loading commit data...
fellow_log_dle_chg.h Loading commit data...
fellow_log_iter_out.h Loading commit data...
fellow_log_storage.h Loading commit data...
fellow_log_test.c Loading commit data...
fellow_pri.h Loading commit data...
fellow_regionlist.h Loading commit data...
fellow_sha256.c Loading commit data...
fellow_sha256.h Loading commit data...
fellow_stash.h Loading commit data...
fellow_storage.c Loading commit data...
fellow_storage.h Loading commit data...
fellow_storage_deref.h Loading commit data...
fellow_task.h Loading commit data...
fellow_testenv.c Loading commit data...
fellow_testenv.h Loading commit data...
fellow_tune.c Loading commit data...
fellow_tune.h Loading commit data...
flint.h Loading commit data...
flint.lnt Loading commit data...
pow2_units.c Loading commit data...
pow2_units.h Loading commit data...
slash-counters.rst Loading commit data...
slashmap.c Loading commit data...
slashmap.h Loading commit data...
slashmap.rst.in Loading commit data...
slashmap_options.h Loading commit data...
vmod_slash.c Loading commit data...
vmod_slash.man.rst Loading commit data...
vmod_slash.vcc Loading commit data...
vmod_slash_loadmasters.c Loading commit data...