Bug #15707 BDB returns incorrect result in multithreading benchmark
Submitted: 13 Dec 2005 8:58 Modified: 31 Aug 2006 14:38
Reporter: Vadim Tkachenko Email Updates:
Status: Unsupported Impact on me:
None 
Category:MySQL Server: BDB Severity:S1 (Critical)
Version:5.1.4 OS:Linux (RedHat AS 3.0)
Assigned to: Elliot Murphy CPU Architecture:Any

[13 Dec 2005 8:58] Vadim Tkachenko
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"