Friday, March 14, 2008

New version and a new home for PBXT!

I have just released the first fully durable version of PBXT. Because of the amount of new code I have reverted PBXT to Alpha status. This version, 1.0-alpha, can be downloaded from:

Oh, which reminds me: PBXT now has a new home at, so take a look around! I have actually found a bit of time to write some documentation. Right now the documentation describes building, installation, and the PBXT system parameters. Future additions will include information on performance tuning and a road map for PBXT development.

But there is more to the new home than just a new web-site. The PBXT project is now owned and funded by PrimeBase Technologies, an open source software development company. So altogether this is a important step forward on the road to my goal which is to make PBXT a significant contribution to the MySQL community and business/eco-system.

Besides full durability, the latest release includes the following improvements:
  • Calculation of index statistics as required by the optimizer (execute FLUSH TABLES to refresh the statistics).
  • New system variables: pbxt_log_cache_size, pbxt_log_file_threshold, pbxt_transaction_buffer_size and pbxt_checkpoint_frequency (details here).
  • Implementation of SELECT FOR UPDATE, which performs row-level locking to prevent concurrent updates.
  • Group commit: increases update throughput by committing multiple transactions concurrently.
  • Support for SHOW ENGINE PBXT STATUS, which displays information about memory usage.
What this release does not have is an option to relax durability. The transaction log is always flushed on commit. I plan to add a system parameter shortly that will allow you, in the spirit of the original version, to trade performance for durability if this suites your application.

Even better would be to be able to specify this per table. Now if only MySQL would allow engines to specify custom table attributes...


Luciano said...

Hi Paul,
great news. I´ll download it as soon as I can to try this new version.


burtonator said...


I did some more work on benchmarking SSDs:

While InnoDB is looking pretty solid right now I still feel PBXT would be superior.

It turns out there are a lot of linux tuning options needed to get the IO subsystem to perform correctly. I don't think I gave PBXT a fair chance last time because some of these variables weren't tuned correctly.

As soon as I get some free time I'll give it another shot.


Paul McCullagh said...

Hi Luciano,

Thanks for you support, as always!

Once again, I would really appreciate your help in testing the 4GB boundary! :)

Paul McCullagh said...

Hi Kevin,

I just noticed a bit of a glitch with the Alpha version and SSDs.

I will fix this as soon as possible with the 1.01 release.

So please wait for that before you start your tests.

Then it would be great if I could get some feedback from you on how to optimize the engine for SSDs.

Thanks for your help!

Tim S. said...

That's great news Paul! I am very excited about the latest developments, particularly having a nice web-page dedicated to PBXT. I am also glad you decided to allow durability to be bypassed for those of us that like to live dangerously :) I do agree, it would be nice if you could set this per table, too.

Keep up the excellent work!

Roland Bouman said...

Hi Paul!

congrats on these new developments! PBXT for president ;)

Paul McCullagh said...

Thanks Roland!

I really appreciate your support :)

See you at the Conference...