Bug #22142 | random hangs on update_key bechmarks with 4-64 threads | ||
---|---|---|---|
Submitted: | 9 Sep 2006 5:00 | Modified: | 29 Oct 2008 17:54 |
Reporter: | Georg Richter | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S2 (Serious) |
Version: | 5.2 | OS: | Any |
Assigned to: | Hakan Küçükyılmaz | CPU Architecture: | Any |
Tags: | F_UNKNOWN |
[9 Sep 2006 5:00]
Georg Richter
[14 Sep 2006 14:06]
Jim Starkey
I believe this is fixed as of 9/14/06.
[15 Sep 2006 11:38]
Hakan Küçükyılmaz
Tried with following scenario: - 8 way Intel EM64T with 8GB RAM. Linux SLES 9 64-bit change set 1.2292, 2006-09-14 - Build with: BUILD/compile-amd64-max --prefix=/usr/local/mysql-5.1 - sysbench 0.4.7 The reported initialization for sysbench has a minor error. It does not use the Falcon storage engine: --mysql-table-engine=falcon should be used. I initialized the test table with: sysbench --test=oltp --mysql-user=root --mysql-table-engine=falcon --mysql-engine-trx=yes --oltp-table-size=1000000 --oltp-table-name=sbtest --init-rng=on --mysql-db=test prepare After that checked that storage engine for table test.sbtest is of type Falcon and that we have 1 mio rows in that table: mysql> show create table sbtest\G *************************** 1. row *************************** Table: sbtest Create Table: CREATE TABLE "sbtest" ( "id" int(10) unsigned NOT NULL AUTO_INCREMENT, "k" int(10) unsigned NOT NULL DEFAULT '0', "c" char(120) NOT NULL DEFAULT '', "pad" char(60) NOT NULL DEFAULT '', PRIMARY KEY ("id"), KEY "k" ("k") ) ENGINE=Falcon DEFAULT CHARSET=latin1 mysql> select count(*) from sbtest; +----------+ | count(*) | +----------+ | 1000000 | +----------+ 1 row in set (3.74 sec) Now we can run the sysbench test. However, the stated test run cannot be ran. There is no --oltp-dist-type=sbtest. I double checked with the developer of sysbench and he stated that there has never been --oltp-dist-type=sbtest. Probably --oltp-dist-type=special was meant. So we run sysbench like this: sysbench --test=oltp --mysql-user=root --mysql-table-engine=falcon --mysql-engine-trx=yes --oltp-table-size=1000000 --oltp-table-name=sbtest --oltp-test-mode=nontrx --oltp-nontrx-mode=update_key --max-requests=0 --num-threads=4 --oltp-dist-type=special --mysql-db=test --max-time=180 run Result: sysbench v0.4.7: multi-threaded system evaluation benchmark No DB drivers specified, using mysql Running the test with following options: Number of threads: 4 Doing OLTP test. Running non-transactional test Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases) Using "BEGIN" for starting transactions Using auto_inc on the id column Threads started! 1 out of 0 2 out of 0 3 out of 0 4 out of 0 5 out of 0 6 out of 0 7 out of 0 ... ... ... ... This continues until ... ... ... 23328 out of 0 23329 out of 0 23331 out of 0 23332 out of 0 ALERT: failed to execute mysql_stmt_execute(): Err1296 Got error -1024 'update conflict in table MYSQL.SBTEST' from Falcon FATAL: database error, exiting... Done. Please note that the original bug report has two errors: 1. Initializion of sbtest table was wrong: /sysbench --test=oltp --mysql-engine-trx=jstar --oltp-table-size=1000000 --mysql-engine-trx=yes --oltp-table-name=sbtest --init-rng=on --mysql-db=test The first --mysql-engine-trx=jstar is wrong. It should be: --mysql-table-engine=falcon otherwise the defaut storage engine will be used (in most cases MyISAM). 2. Run of sysbench was wrong: --test=oltp --mysql-engine-trx=jstar --oltp-table-size=1000000 --mysql-engine-trx=yes --oltp-table-name=sbtest --oltp-test-mode=nontrx --oltp-nontrx-mode=update_key --max-requests=0 --num-threads=4 --oltp-dist-type=sbtest --mysql-db=test --max-time=180 run The is no --oltp-dist-type=sbtest. Correct would be --oltp-dist-type=special. Regards, Hakan
[15 Sep 2006 12:18]
Hakan Küçükyılmaz
Cross checked with InnoDB that sysbench is fine on above mentioned platform. sysbench with InnoDB works as expected. Regards, Hakan
[15 Oct 2006 23:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[9 Oct 2008 10:52]
Hakan Küçükyılmaz
Can't repeat anymore. Successfully ran mysqlslap with --concurrency=1,50,100,150,200,250,300 for Falcon.
[9 Oct 2008 10:55]
Hakan Küçükyılmaz
Forget my last comment.
[29 Oct 2008 17:54]
Hakan Küçükyılmaz
Can't repeat with latest Falcon and sysbench v0.5. I tried the following: sysbench \ --init-rng=on \ --mysql-db=test \ --mysql-engine-trx=yes \ --mysql-table-engine=falcon \ --mysql-user=root \ --oltp-table-name=sbtest \ --oltp-table-size=1000000 \ --test=oltp_simple.lua \ prepare sysbench \ --max-requests=0 \ --max-time=180 \ --mysql-db=test \ --mysql-engine-trx=yes \ --mysql-table-engine=falcon \ --mysql-user=root \ --num-threads=4 \ --oltp-dist-type=special \ --oltp-nontrx-mode=update_key \ --oltp-table-name=sbtest \ --oltp-table-size=1000000 \ --oltp-test-mode=nontrx \ --test=oltp_simple.lua \ run I used --num-threads=4, 16, 64 and ran the test 10 times with 64 threads. There were no hangs.