June 19, 2013

Post: InnoDB benchmarks

…. Problems in InnoDB that were fixed: Thread trashing issues with count of theads 100+. In this case performance of InnoDB degraded dramatically. The problem was in the mutex impelementation and was fixed in 5.1.12 (more info about InnoDB mutexes) Scalabilty…

Post: InnoDB, InnoDB-plugin vs XtraDB on fast storage

… for InnoDB-plugin. Here we observe innodb_adaptive_flushing in action (which is ON by default), and I think innodb_adaptive_flushing in InnoDB… later), I guess InnoDB-plugin spends most time in buffer_pool mutex, contention here is not fully resolved yet in InnoDB-plugin. Now… InnoDB-plugin, I’d wish InnoDB team makes some actions on buffer_pool mutex problem. Finally I wanted to check what if we put innodb

Post: My Innodb Feature wishes

… times space compression. Insert buffer for delete. For Insert operation Innodb uses nice tecnique called Insert Buffer which speeds up inserts… it is so bad I will list it. Basically Innodb has problems scaling both with large number of active threads and with… with 4 concurrent queries). The problem seems to be at least partially due to global mutexes in many places so it is…

Post: InnoDB vs MyISAM vs Falcon benchmarks - part 1

… MyISAM / InnoDB: libexec/mysqld –no-defaults –user=root –key-buffer-size=1500M –innodb-buffer-pool-size=1500M –innodb-log-file-size=100M –innodb-thread… does not scale good enough. Perhaps there is still a problem with InnoDB mutexes. READ_KEY_POINT_NO_DATA Query: SELECT state_id…

Post: Avoiding auto-increment holes on InnoDB with INSERT IGNORE

… the innodb_autoinc_lock_mode to 0. But with a loss of performance and concurrency. How can I solve this problem for… using a special mutex table, as explained on Baron’s blog to get rid of the gaps problem. A “mutex” table is a… integer value: create table mutex( i int not null primary key ); insert into mutex(i) values (1); Our InnoDB table with auto increment…

Post: Returning to InnoDB scalability

… which show the problem is with “buffer pool” mutex, which protects innodb_buffer_pool. In details, for each scanned row InnoDB calls block_get…. And the problem functions block_get / block_release use mutex_lock(buffer_pool_mutex) / mutex_unlock(buffer_pool_mutex) calls. So global mutex is accessed for…

Post: Helgrinding MySQL with InnoDB for Synchronisation Errors, Fun and Profit

… version (pre-5.1.61) and a single test, innodb_plugin.innodb_bug53674. The test is chosen for no particular reason except… (srv0start.c:1514) ==9090==    by 0x6B48855: innobase_init(void*) (ha_innodb.cc:2284) ==9090==    by 0x712F17: ha_initialize_handlerton(st_plugin… out that mutex_get_waiters is called from mutex_exit and there we find a comment: /* A problem: we assume that mutex_reset_lock…

Post: Index lock and adaptive search - next two biggest InnoDB problems

… constantly face two contention problems. So I suspect it’s going to be next biggest issues to make InnoDB scaling on high… state. First problem is index->lock mutex. InnoDB uses single mutex per index, so when you run mixed read / write queries, InnoDB locks index for… write queries at the same time. InnoDB again uses single global mutex for adaptive_search (single mutex for ALL table and ALL indexes…

Post: Percona Server with XtraDB Case Study, Behind the Scenes

… both mutex contention and excessive CPU usage, for different reasons, and I found different problems in different samples. InnoDB was also dying under mutex contention. Each spike of slow queries I found was caused by different things. Sometimes GDB stack traces showed InnoDB mutex contention, sometimes oprofile showed the query cache hogging the CPU, and so on. So we had to solve all the problems

Comment: Scaling problems still exist in MySQL 5.5 and Percona Server 5.5

… you’re hitting “btr_search_latch” mutex contention during this test.. – did you collect also innodb mutex status while testing? – that may bring… the source of the problem) – Vadim pointed before that he observed some problems with huge Buffer Pool sizes, but mutex status details were…