I am pleased to announce that the Beta version of PBXT has just been
released. You can download the source code of the storage engine
from www.primebase.org/download. I have also updated
the documentation for this version.
Configuring and building the engine is easier than ever now. To
configure PBXT all you have to do is specify the path to the
MySQL source code tree (after building MySQL), for example:
./configure --with-mysql=/home/foo/mysql/mysql-5.1.26-rc
The PBXT configure command will retrieve all required options
from the MySQL build. For example whether to do a debug or
optimized build and where to install the plugin are determined
automatically, depending on how you configured MySQL.
This was a source …
Over the last few weeks I have been doing some work on improving
the concurrency performance of PBXT. The last Alpha version (1.0.03) has
quite a few problems in this area.
Most of the problems have been with r/w lock and mutex contention
but, I soon discovered that MySQL has some serious problems of
it's own. In fact, I had to remove some of the bottlenecks in
MySQL in order to continue the optimization of PBXT.
The result for simple SELECT performance is shown in the graph
below.
Here you can see that the gain is over 60% for 32
or more concurrent threads. Both results show the performance
with the newly optimized version of PBXT. The test is running on
a 2.16 MHz dual core processor, so I expect an even greater
improvement on 4 or 8 cores. The query I ran for this test is …
OK, now I know that the GA version of 5.1 is rapidly
approaching. PBXT compiles with the latest release of MySQL
without any changes!
This has never been the case before. Just search the PBXT
code for MYSQL_VERSION_ID, and you will find things like:
#if MYSQL_VERSION_ID < 50114
XT_RETURN_VOID;
#else
XT_RETURN(0);
#endif
and, even worse:
#if MYSQL_VERSION_ID < 60000
#if MYSQL_VERSION_ID >= 50124
#define USE_CONST_SAVE
#endif
#else
#if MYSQL_VERSION_ID >= 60005
#define USE_CONST_SAVE
#endif
#endif
The lack of changes that affect pluggable storage engines can
only mean that the bug fixes required are diminishing in
scope.
And I believe this is a far better gauge of whether GA is close
than any other …
Here’s a rundown of Thursday (day 3) of the MySQL Conference and Expo. This day’s sessions were much more interesting to me than Wednesday’s, and in fact I wanted to go to several of them in a single time slot a couple of times.
Inside the PBXT Storage Engine
This session was, as it sounds, a look at the internals of PBXT, a transactional storage engine for MySQL that has some interesting design techniques. I had been looking forward to this session for a while, and Paul McCullagh’s nice explanations with clear diagrams were a welcome aid to understanding how PBXT works. Unlike some of the other storage engines, PBXT is being developed in full daylight, with an emphasis on community involvement and input. (Indeed, I may be contributing to it myself, in order to make its monitoring and tuning capabilities second to none).
PBXT has not only a unique design, but a …
[Read more]- Paul McCullagh presents
- BLOB
- invented by Jim Starkey
- Basic Large OBject
- Binary Large OBject
- photos, films, mp4 files, pdfs, etc
- how MySQL handles BLOBs
- mysql client send buffer -> receive buffer on the server (max_allowed_packet)
- streaming a BLOB
- continuous data stream
- stream BLOB data directly in and out of the database
- store BLOBs of any size (>4GB) in the database
- create a scalable back-end that can handle any throughput and storage requirements. Wouldn't need to know in advance how big the database will get
- provide an open system that can be used by all engines
- provide extensions for …
Today is the first day at the conference (aside from the tutorials, which were yesterday). Here’s what I went to:
New Subquery Optimizations in 6.0
By Sergey Petrunia. This was a similar session to one I went to last year. MySQL has a few cases where subqueries are badly optimized, and this session went into the details of how this is being addressed in MySQL 6.0. There are several new optimization techniques for all types of subqueries, such as inside-out subqueries, materialization, and converting to joins. The optimizations apply to scalar subqueries and subqueries in the FROM clause. Performance results are very good, depending on which data you choose to illustrate. The overall point is that the worst-case subquery nastiness should be resolved. I’m speaking of WHERE NOT IN(SELECT…) and friends. It remains to be seen how this shakes out as 6.0 matures, and what edge cases will pop up.
The Lost Art Of the Self …
[Read more]Well at least your MySQL database world.
As Paul eluded to, PrimeBase Technologies has a project to provide synchronous replication for MySQL in a High Availability environment. It is more then an idea, there is a plan.
Is it possible?
What are the use cases?
How can you use it?
Would you use it?
Some input to date. We need these questions and more, and we seeking more input for discussion.
Unfortunately the opportunity to hear any input during a presentation is left to the last day of the conference, so we have created a BoF session on Tuesday night for a round table discussion if necessary. We encourage people to bring specific cases and situations for feedback, the reasons why MySQL Replication, MySQL Cluster, DRBD/HeatBeat or any other solution does not satisfy your needs, and what …
[Read more]
Brian Aker has found general agreement with his post: "The
Death of Read Replication".
Arjen Lentz says "I
think Brian is right...", and Frank Mash confirmed: "what Brian says about replication, caching and
memcached is very true".
Just like Video killed the Radio Star it looks like
maybe Memcached killed the Replication
Hierarchy!
But of course, Brian and others are talking about replication
for scaling reads.
In my session on PBXT next week at the conference I will
be talking about how we plan …
I’ll be following closely the progression of Storage Engines available in the MySQL Database server, well soon to be available when 5.1 gets to GA (hopefully by end of Q2 which is what we have been told). Tick, Tick, time is running out.
PrimeBase XT (PBXT) and Blob Streaming is obviously my clear focus, actually now working for PrimeBase Technologies, the company which I want to note for people is an Open Source company, committed at providing an open source alternative to the other commercial players. You also have at the MySQL Conference talks on the the existing InnoDB from Innobase (a subsidiary of market RDBMS leader Oracle). There is a …
[Read more]Here I am at my desk sporting the PrimeBase supporters t-shirt that will be available at the exhibitors booth at the 2008 MySQL Conference. The front is rather uneventful with the official logo, but the back will be worth the experience. So everybody interested in supporting PBXT as the transactional storage engine for MySQL developed by the community and for the community, please come and see us and mention the secret password.
We have been placed way back in the right hand side of the exhibitors hall at booth 518, in front of the Open Source and OEM providers.