Description:
I use sysbench benchmark (sysbench.sf.net) to test BDB tables.
With count of threads >=2 BDB returns a garbage and benchmark failed.
How to repeat:
1. prepare benchmark:
./sysbench --test=oltp --oltp-table-size=1000000 --mysql-table-type=bdb --oltp-table-name=sbtestbdb prepare
2. run benchmark:
./sysbench --test=oltp --oltp-table-size=1000000 --mysql-table-type=bdb --oltp-table-name=sbtestbdb --oltp-read-only --max-time=60 --num-threads=8 run
error:
MySQL error: Can't find record in 'sbtestbdb'
FATAL: Error fetching result: `x`
mysqld startup params:
PARAM="--port=3306 \
--socket=/tmp/mysql.sock \
--user=root $LOGERR \
--datadir=$FSPATH \
--basedir=$BASEPATH \
--max_connections=1600 \
--max_connect_errors=10 \
--table_cache=2048 \
--max_allowed_packet=1048576 \
--binlog_cache_size=1048576 \
--max_heap_table_size=67108864 \
--sort_buffer_size=512K \
--join_buffer_size=1048576 \
--key_buffer=8M \
--thread_cache=16 \
--thread_concurrency=16 \
--thread_stack=64K \
--query_cache_size=0 \
--ft_min_word_len=4 \
--default_table_type=MYISAM \
--transaction_isolation=REPEATABLE-READ \
--tmp_table_size=64M \
--skip-locking \
--server-id=1 \
--timed_mutexes=0 \
--skip-innodb \
--bdb_cache_size=900M --bdb-shared-data --bdb-data-direct \
--bdb_max_lock=100000"