-
Type: Task
-
Resolution: Done
-
Affects Version/s: None
-
Component/s: None
-
None
I am not sure if this is a leveldb issue or a wiredtiger issue, but the fill100k benchmark seems to deadlock when launched with multiple threads (>= 16). With lower number of threads, the deadlock does not seem to occur.
Here is the command I use:
time env LD_LIBRARY_PATH=../wiredtiger/.libs:../wiredtiger/ext/compressors/snappy/.libs/ ./db_bench_wiredtiger --cache_size=17179869184 --threads=64 --db=/tmpfs/leveldb --benchmarks=fill100K &> /dev/null
I am using the develp branch of wiredtiger (commit 72020c57fbd6673ad45d32f6f07572e7cd819aac).
Some debug information; I have not yet looked at the code:
- Most threads are waiting in a select() call. Here is the backtrace:
WT-1 0x00007fb6e92ccef8 in __wt_sleep (seconds=<optimized out>, micro_seconds=<optimized out>) at src/os_posix/os_sleep.c:22 WT-2 0x00007fb6e92c059f in __clsm_put (position=0, value=<optimized out>, key=<optimized out>, clsm=0x7fb630000d80, session=0x657050) at src/lsm/lsm_cursor.c:1115 WT-3 __clsm_insert (cursor=0x7fb630000d80) at src/lsm/lsm_cursor.c:1197 WT-4 0x000000000040898a in leveldb::Benchmark::DoWrite(leveldb::(anonymous namespace)::ThreadState*, bool) () WT-5 0x000000000040939e in leveldb::Benchmark::ThreadBody(void*) () WT-6 0x00000000004337fa in leveldb::(anonymous namespace)::StartThreadWrapper(void*) () WT-7 0x00007fb6e881fe9a in start_thread (arg=0x7fb6c77de700) at pthread_create.c:308
- Three threads are waiting in a pthread_cond_timedwait:
WT-1 0x00007fb6e92cbc8f in __wt_cond_wait (session=0x650690, cond=0x6728a0, usecs=<optimized out>) at src/os_posix/os_mtx.c:89 WT-2 0x00007fb6e92785a9 in __wt_cache_evict_server (arg=0x650690) at src/btree/bt_evict.c:172 WT-3 0x00007fb6e881fe9a in start_thread (arg=0x7fb6e7e3f700) at pthread_create.c:308
Hope it can help.
(Note: this deadlock is not really an issue for me... Currently I am just looking for workloads that really stress the memory subsystem )
- related to
-
WT-1 placeholder WT-1
- Closed
-
WT-2 What does metadata look like?
- Closed
-
WT-3 What file formats are required?
- Closed
-
WT-4 Flexible cursor traversals
- Closed
-
WT-5 How does pget work: is it necessary?
- Closed
-
WT-6 Complex schema example
- Closed
-
WT-7 Do we need the handle->err/errx methods?
- Closed
-
WT-663 LSM throttling isn't working with heavily threaded workloads
- Closed