• N
    Switch to thread-local random for skiplist · b81b4309
    Nathan Bronson 提交于
    Summary:
    Using a TLS random instance for skiplist makes it smaller
    (useful for hash_skiplist_rep) and prepares skiplist for concurrent
    adds.  This diff also modifies the branching factor math to avoid an
    unnecessary division.
    
    This diff has the effect of changing the sequence of skip list node
    height choices made by tests, so it has the potential to cause unit
    test failures for tests that implicitly rely on the exact structure
    of the skip list.  Tests that try to exactly trigger a compaction are
    likely suspects for this problem (these tests have always been brittle to
    changes in the skiplist details).  I've minimizes this risk by reseeding
    the main thread's Random at the beginning of each test, increasing the
    universal compaction size_ratio limit from 101% to 105% for some tests,
    and verifying that the tests pass many times.
    
    Test Plan: for i in `seq 0 9`; do make check; done
    
    Reviewers: sdong, igor
    
    Reviewed By: igor
    
    Subscribers: dhruba
    
    Differential Revision: https://reviews.facebook.net/D50439
    b81b4309
CMakeLists.txt 15.8 KB