Alex, I assigned this to you, but turf to Michael if appropriate. In looking at the delete operation in the benchmark, I found a case that hangs. I changed the 'random' so that it uses the Symas shuffle fix. I.e. it randomly writes 1million unique keys, so it should end up with the same database as the fill sequential, only written in random order. Then I do a sequential delete.
This particular combination hangs on eviction. It gets to N delete operations, and then N+1 never completes, even after more than a minute for a single delete call. Profiled, the evict thread is here:
Running Time Self Symbol Name
74921.0ms 48.1% 1.0 __wt_cache_evict_server
74905.0ms 48.1% 38.0 __evict_worker
74392.0ms 47.8% 263.0 __evict_lru
32329.0ms 20.7% 430.0 __evict_walk
29952.0ms 19.2% 542.0 _qsort
The delete operation is here:
Running Time Self Symbol Name
71656.0ms 46.0% 21.0 __curfile_remove
71557.0ms 45.9% 14.0 __wt_btcur_remove
69605.0ms 44.7% 4.0 __cursor_func_init
69561.0ms 44.7% 12.0 __cursor_leave
69262.0ms 44.5% 8304.0 __wt_cache_full_check
39404.0ms 25.3% 3893.0 __wt_evict_lru_page
17378.0ms 11.1% 5974.0 __wt_eviction_check
Let me know if you need other information from me.
- is related to
-
WT-438 Empty evict
- Closed