So, Anton got some useful code working that I could patch into a MySQL server for testing purposes – a POWER8 optimized CRC32 implementation.
I went with a pretty stock MySQL 5.6.22 (one patch) with sysbench preparing a single 2GB table (10,000,000 rows). I then hacked up innochecksum so that it would only do the correct CRC32 (rather than trying each checksum type). Using the standard CRC32 algorithm it took around three seconds to verify all of the checksums. With a POWER8 optimized CRC32: 0.4-0.5 seconds. Useful speed-up!
I then ran sysbench read/write with 16 threads with oltp-table-size=10000 (on the larger table) to see if there would be an improvement in a “real world” workload. I got about 30% better performance on read/write operations!
Using perf to see where CPU was going, CPU time spent doing CRC32 calculations went down from ~2.5% to ~0.25%!
In theory, we should be able to get about 52GiB/sec of CRC32 out of a 4.1Ghz POWER8 core. I don’t think we’ll be hitting this in MySQL any time soon.
Give us another week or two and we’ll likely have a patch that’s ready to merge.
Initial benchmarks look promising though!
Preliminary results from POWER8 optimized CRC32 for MySQL http://t.co/jSLEnW2qqe
Preliminary results from POWER8 optimized CRC32 for MySQL http://t.co/rU1MAFSTIH
New #mysql planet post : Preliminary results from POWER8 optimized CRC32 for MySQL http://t.co/LnxwjYafc6
Preliminary results from POWER8 optimized CRC32 for MySQL: So, Anton got some useful code working that I could… http://t.co/NUpDVVMCqJ
Preliminary results from POWER8 optimized CRC32 for MySQL: So, Anton got some useful code working that I could… http://t.co/kmlcWq3i8Y
#MySQL Preliminary results from POWER8 optimized CRC32 for MySQL http://t.co/N4MEAB4usx
Preliminary results from POWER8 optimized CRC32 for MySQL http://t.co/RX6dONMhbe
Preliminary results from POWER8 optimized CRC32 for MySQL https://t.co/7UV8TjGo55 via @stewartsmith
RT @Alex_Pozdneev: Preliminary results from POWER8 optimized CRC32 for MySQL https://t.co/7UV8TjGo55 via @stewartsmith
RT @Alex_Pozdneev: Preliminary results from POWER8 optimized CRC32 for MySQL https://t.co/7UV8TjGo55 via @stewartsmith