• M
    [wal changes 1/3] fixed unbounded wal growth in some workloads · 218487d8
    Mike Kolupaev 提交于
    Summary:
    This fixes the following scenario we've hit:
     - we reached max_total_wal_size, created a new wal and scheduled flushing all memtables corresponding to the old one,
     - before the last of these flushes started its column family was dropped; the last background flush call was a no-op; no one removed the old wal from alive_logs_,
     - hours have passed and no flushes happened even though lots of data was written; data is written to different column families, compactions are disabled; old column families are dropped before memtable grows big enough to trigger a flush; the old wal still sits in alive_logs_ preventing max_total_wal_size limit from kicking in,
     - a few more hours pass and we run out disk space because of one huge .log file.
    
    Test Plan: `make check`; backported the new test, checked that it fails without this diff
    
    Reviewers: igor
    
    Reviewed By: igor
    
    Subscribers: dhruba
    
    Differential Revision: https://reviews.facebook.net/D40893
    218487d8
db_impl.h 30.3 KB