InnoDB scalability improvements in
Mydbops Meetup - 4
Karthik P R
www.mydbops.com email@example.com 1
Founder/CEO Mydbops, Ex-Yahoo!,
Working with MySQL ecosystem from 2010,
Juggles between Business leadership and hands
on technical expertise and a Creative Team
● Founded in 2015, HQ in Bangalore India with 150+ customer base across the globe.
● Mydbops is on Database Consulting with core specialization on MySQL and MongoDB Administration and
● We have expert team with 20+ certified DBA’s providing full time support and currently managing 300+
servers on premises and cloud.
● We help organisations to architect and scale systems in MySQL/MongoDB by implementing the advanced
technologies in industry which are completely open source.
● We are a leading solution provider in the market for all sort of cloud based database deployments and
● An AWS partner for databases.
InnoDB Write Scalability
Redo log (WAL) - 5.7
● Major Component to ensure ACID
● Ensure Changes are durable
● Crash Recovery
● Slower at high concurrency ( Modern Hardware )
● Needs a new design
CATS ( Contention Aware Transaction Scheduling )
● University of Michigan Contribution.
● Philosophy: Not all transaction are same.
● FIFO ( Default MySQL 5.7 )
● Switches between CATS from FIFO ( MySQL 8.0 )
● >= 32 Waiting threads
● Reduces lock sys wait mutex
● First database to adopt this Philosophy in Transaction
Data Dictionary ( SDI )
● A major overhaul in Data Dictionary
● ibd2sbi tool
● Change Index
● Rename Table
● Modify column
● Add/Drop Virtual columns
Alter table add column
● Tencent Games
● Instant add column (at end)
Temporary Tablespace ( Session )
● Pool of 10 temporary tablespace ( .ibt )
● Each of 80K ( 5 pages ) in size
● 400K Space ID is reserved
● SQL to control Undo logs
○ Create UNDO Tablespace …
○ Alter UNDO Tablespace ….
○ Drop UNDO Tablespace ..
● Default 2 files ( 4 is better )
InnoDB Dedicated Server
● Better defaults
● InnoDB Buffer Pool / InnoDB log File Size / InnoDB Flush method
InnoDB Parallel Thread Count
● Path to parallel query in InnoDB
● Make count() and Check tables faster
● Default 4 threads