Yesterday, HarrisonF noted in one of my comments that PBXT uses a log structure internally to represent its on disk format.
This prompted me to test it out to verify if it would boost performance of MySQL on SSD.
I’m somewhat impressed. Not blown away but this is very interesting.
Bulk inserting 1M rows into the DB was about 2x faster than InnoDB. What’s interesting is that PBXT did NOT saturate the SSD drive. PBXT was CPU bound and only using the SSD at about 50% utilization.
This is a quad core box and PBXT was using about 1 core to perform INSERTs as I only launched one process to create the database. If they can boost the CPU performance I imagine they could just flat out crush InnoDB for insertion speed (possibly by 4x).
In fact… it seems that if they boost it 2x more it would saturate the drive (which makes sense for an INSERT only log structured database).
I wonder if this CPU hit is due to performing checksums on the data.
Once sysbench kicked into concurrent INSERT/UPDATE/DELETE/SELECT tests the OLTP performance really started to fall – to the point where it was on par with InnoDB in terms of performance.
There seems to be a lot of opportunity here for PBXT. If they could focus on SSD markets they could really make a STRONG case for using their database as the raw transactions per second / price would be outstanding.
They’d probably need to focus on SSD exclusively though as I’m not sure they’d be able to get the same performance profile on HDD.
MyISAM is CPU bound on inserts too… I think this might be the plugin interaction layer. Apparently it’s not very efficient for high performance storage engines.
I wonder how InnoDB gets around this problem.
The only other note I wanted to make was regarding PBXT’s installation.
What a joke. PBXT took me 5 hours to install.
The MySQL 4.1.x source snapshot would dump core on install.
Compiling PBXT with MySQL 5.1.x is a comedy of errors. PBXT does not list build requirements. The recommended ./configure command line arguments were insufficient.
I could go on. Trial and error (and 5 hours later) resulted in a working PBXT install but it wasn’t exactly a fun process.
If they can’t get their installation routine down it doesn’t give me confidence to believe that deploying this into production would be a good idea.