[MDEV-3167] LP:805930 - Sysbench breaks on multiple table test with MariaDB 5.2.7 + Aria Created: 2011-07-05  Updated: 2015-02-02  Resolved: 2012-10-04

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Vladimir Cvetkov (Inactive) Assignee: Michael Widenius
Resolution: Fixed Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug805930.xml     File LPexportBug805930_oltp_aria.lua    

 Description   

I run a benchmark test on pitbull.askmonty.org with the following settings:

  • sysbench 0.5
  • number of tables: 24
  • table size: 2 000 000 rows
  • DB: MariaDB 5.2.7
  • Storage engine: Aria with TRANSACTIONAL=0
  • Workload: slightly modified oltp.lua so that it supports multiple tables and locking of tables for Aria (see attached file oltp_aria.lua)

Sometime after a few minutes of testing, an error occurs and breaks the benchmark.
Here is the error that breaks sysbench:
ALERT: failed to execute MySQL query: `UPDATE sbtest13 SET k=k+1 WHERE id=4097`:
ALERT: Error 1062 Duplicate entry '1001243' for key 'k'
FATAL: failed to execute function `event': (null)

The problem is that the column 'k' does not have a unique constraint. Here is the "show create table sbtest13" output:
CREATE TABLE `sbtest13` (
`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=Aria AUTO_INCREMENT=2000001 DEFAULT CHARSET=latin1 MAX_ROWS=2000000 PAGE_CHECKSUM=1 TRANSACTIONAL=0

This error may occur (or may not) randomly after a few minutes of testing and didn't happen on my local computer. The error occurred while testing with 1, 2, 4, 8 and 12 threads during a 10 minute test, and everything was OK with 16, 24, 48, 64 and 128 threads. Considering that pitbull has 12 CPUs with hyperthreading on: 24 virtual CPUs, this could be a clue (or just a coincidence though).

Here is an example call to sysbench prepare statement:
sysbench --mysql-host=localhost --mysql-socket=/home/vlado/Projects/MariaDB/temp/mysql.sock --mysql-user=root --test=/home/vlado/Projects/MariaDB/sysbench/sysbench/tests/db/parallel_prepare.lua --num-threads=24 --oltp-tables-count=24 --mysql-table-engine=aria --oltp-table-size=2000000 prepare

Here is an example call to sysbench run with 4 threads:
sysbench --mysql-host=localhost --mysql-socket=/home/vlado/Projects/MariaDB/temp/mysql.sock --mysql-user=root --test=/home/vlado/Projects/MariaDB/sysbench/sysbench/tests/db/oltp_aria.lua --oltp-tables-count=24 --max-time=600 --max-requests=0 --num-threads=4 --mysql-table-engine=aria run



 Comments   
Comment by Vladimir Cvetkov (Inactive) [ 2011-07-05 ]

Re: Sysbench breaks on multiple table test with MariaDB 5.2.7 + Aria

Comment by Vladimir Cvetkov (Inactive) [ 2011-07-05 ]

The modified oltp.lua script that supports multiple table lock and Aria
LPexportBug805930_oltp_aria.lua

Comment by Michael Widenius [ 2011-07-24 ]

Re: Sysbench breaks on multiple table test with MariaDB 5.2.7 + Aria
Fix pushed into 5.1 ; Will be pushed into 5.2 as soon as 5.1 test has passed on buildbot

Comment by Rasmus Johansson (Inactive) [ 2011-09-02 ]

Launchpad bug id: 805930

Generated at Thu Feb 08 06:46:46 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.