Where the open source database community meets: Use code PERCONA75 and secure your spot for Percona Live.  Register

Improved InnoDB rw_lock patch

October 20, 2008
Author
Vadim Tkachenko
Share this Post:

There is patch from Google to improve SMP performance , but for some workloads it showed for us reverse scalability.
E.g. update_key benchmark from sysbench. There are also results with Yasufumi’s rw_locks (http://bugs.mysql.com/bug.php?id=26442)

Threads Standard InnoDB Google smpfix Yasufumi rw_lock
1 9700.28 10601.96 9432.44
2 14355.66 16673.31 12783.58
4 16104.20 2669.39 6308.92
8 18507.55 780.22 1854.43
16 16178.09 842.73 1601.05
32 12337.50 2028.89 3274.13
64 7801.18 1911.94 4043.85

results are in tps, more are better

(result in tps, more is better)
The benchmark was made on 8cores box, and as you see for 4+ threads we have worse results than for 2 threads. That is was main reason why we did not include InnoDB smp fixes in our build yet.

Fortunately we get fixed version of Yasufumu’s rw_locks and you can download them there

The results for the same benchmark:

Threads Standard InnoDB Yasufumi rw_lock ver 2
1 9700.28 9812.18
2 14355.66 14602.46
4 16104.20 18726.22
8 18507.55 19099.80
16 16178.09 17470.22
32 12337.50 12407.24
64 7801.18 7669.73

And for other workloads new rw_locks show results comparable with Google’s smpfix, so we will include
innodb_rw_lock into our next -percona-highperf release

0 0 votes
Article Rating
Subscribe
Notify of
guest

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Davy Campano
Davy Campano
17 years ago

Do you have any benchmarks from some of the other tests?

Peter
Peter
17 years ago

Many thanks to Yasufumi for his innodb_rw_lock patch. I was close to loosing my trust in FreeBSD before applying the patch. Running our 7G InnoDB database on MySql 5.0.67 on FreeBSD 7.0 on a 8core Box we had severe context-switching problems without the patch. After applying it it works like a charm. Close to no contentions left!

Far
Enough.

Said no pioneer ever.
MySQL, PostgreSQL, InnoDB, MariaDB, MongoDB and Kubernetes are trademarks for their respective owners.
© 2026 Percona All Rights Reserved