Wednesday, March 29, 2006

PBXT: May the source be with you!

Now that I have PBXT running under both Mac OS X (Power PC) and Linux, I have posted the source code. Here is the download URL:

http://www.primebase.com/xt/download/mysql-4.1.16-pbxt-0.9.1.tar.gz

As the name suggests, the engine has been integrated into MySQL 4.1.16 (the nightly build of November 4, 2005). I have labeled this version Alpha since it is almost feature complete, but please check my to-do list before you build and run it:

http://www.primebase.com/xt/download/pbxt-to-do.txt

Here are some brief instructions for building MySQL with PBXT:

http://www.primebase.com/xt/download/how-to-build.txt

You can send any questions, suggestions or bug reports to me directly: paul.mccullagh(a)primebase.com.

My initial tests show that the performance of PBXT under Linux/Intel is very promising, to put it modestly. More about this later.

3 comments:

Dmitry said...

compiled on Darwin 8.5.0
tried to run sql-bench :)
./run-all-tests --create-options=TYPE=PBXT
got:
060330 17:05:42 [Warning] SW-test xa_free_variation(m_xaction.c:172) Record {1287335424:25222610431488:16443} reference by [0:0] does not exist
mysqld got signal 10;

started mysqld again, went into db, run "show table status" - there was a table
| bench | PBXT | 9 | Fixed | 1000
and at the same moment:
060330 17:08:44 [Warning] SW-test xa_free_variation(m_xaction.c:172) Record {1287335424:25220959579204:16443} reference by [0:0] does not exist
mysqld got signal 10;

any patch/fix? :)

Paul McCullagh said...

Dmitry, thanks for testing PBXT and for your comments.

So far I have only used my own Java/JDBC based performance test, which is rather rudementory. I still need external confirmation, but so far the results are good enough to say that XT may have something to offer the MySQL community.

Basically this is what will make the effort worthwhile in the long run.

I realize that XT will not perform well under all circumstances right now. For example INSERT .. SELECT is slow at the moment due to lack of buffered disk output. I mean, its obvious, good performance does not happen overnight, this can take (sometimes) years of tuning.

But this also means I really need to get started!

The MySQL Performance tests are high on my priority list. I have placed this issue on the PBXT to-do list.

Resolved issues will be placed in a "ChangeLog" when I make a release.

Toby said...

Paul, I would suggest you set up version control (such as Subversion) and a formal bug tracker ASAP. It will greatly help productivity as more people come on board to help... --Toby