I'm very pleased to announce the publication of my book Expert PHP and MySQL, published by Wrox. This book was written by myself, Andrew Curioso and Ronald Bradford. The short of it is, upon finishing my previous book, Developing Web Applications with Apache, MySQL, memcached, and Perl, Wiley asked me if I knew of anyone who would like to write a MySQL/PHP book. I had worked with Andrew at Lycos and found him to be a brilliant PHP developer, having been the primary developer of Lycos's Webon product-- which has some excellent usage of PHP, Javascript and MySQL. When I friend of mine Bob Wilkins, who started MyVBO, was looking for a developer I suggested Andrew (he now works at MyVBO), and for this book I also suggested Andrew. Andrew had also written a short book for O'Reilly on AJAX, so Wiley was glad to have …
[Read more]I spent some time this weekend fixing up the Gearman MySQL UDFs (user defined functions) and fixed a few bugs in the Gearman Server. You can find links to the new releases on the Gearman website. The UDFs now use Monty Taylor’s pandora-build autoconf files instead of the old fragile autoconf setup that relied on pkgconfig.
If you are attending the MySQL Conference & Expo next week and want to learn more about Gearman, be sure to check out one of the three sessions Giuseppe Maxia and I are giving:
[Read more]
I was reading a post by Dathan Vance Pattishall titled "Cassandra is my NoSQL solution but..". In the
post, Dathan explains that he uses Cassandra to store clicks
because it can write a lot faster than MySQL. However, he runs
into problems with the read speed when he needs to get a range of
data back from Cassandra. This is the number one problem I have
with NoSQL solutions.
SQL is really good at retrieving a set of data based on a key or
range of keys. Whereas NoSQL products are really good at writing
things and retrieving one item from storage. When looking at
redoing our architecture a few years ago to be more scalable, I
had to consider these two issues. For what it is worth, the NoSQL
market was not nearly as mature as it is now. So, my choices were
much more limited. In the end, we decided to stick with MySQL. It
turns out …
Since I left Sun back in January, folks have been asking what was next. I’m happy to say that I’m going to continue hacking on open source projects like Drizzle and Gearman, but now at the Rackspace Cloud. Not only will I be there, but I get to continue working closely with a few of the amazing Drizzle hackers who have also joined, including Monty Taylor, Jay Pipes, Stewart Smith, and Lee Bieber.
Why Rackspace Cloud? Late last year I was considering what I wanted to do next with the Oracle acquisition looming near, and this was one of the options that …
[Read more]I’m glad to announce that we’ll be having a Drizzle developer day again this year on the Friday after the MySQL Conference! Be sure to sign up and add any topic ideas you may have so we know what folks are interested in. Space is limited!
While at the MySQL Conference, I’ll be speaking with Monty Taylor on “Using Drizzle.” This will take a non-developer approach to the project, so everyday DBAs and web developers should find this interesting. I’ll also be teaming up with …
[Read more]
After a discussion with my colleague Stephane Varoqui we decided
to see how Gearman and the NDBAPI could be used together. The result of the
POC was a Gearman worker and a couple of clients (clients and
workers use Google Protocol Buffers as the protocol). The
worker can:
- set/get/delete records on a single table in MySQL Cluster using the primary key
- set/get/delete "any" type. It is not possible to dynamically
add types but this is done at compile time.
- supports the following SQL data types:
(UNSIGNED) INTEGER, (UNSIGNED) BIGINT, CHAR, VARCHAR/VARBINARY
- supports the following Google Protocol Buffer …
|
I gave two presentations about Gearman at the Linux.conf.au. As part of the preparation for these talks, I created several sample applications. One of them, about remote replication administration, I will cover in a separate post. The most amazing one, which I cover here, is a quick and painless solution for multiple level crosstabs in MySQL. |
Some background is needed. Crosstabs (also called data
cubes or pivot tables, have been one of my favorite
hacks for long time. In 2001 I wrote an article about a simple …
At dealnews we have three tiers of servers. First is our
development servers, then staging and finally production. The
complexity of the environment increases at each level. On a
development server, everything runs on the localhost: mysql,
memcached, etc. At the staging level, there is a dedicated MySQL
server. In production, it gets quite wild with redundant services
and two data centers.
One of the challenges of this is where and how to store the
connection information for all these services. We have done
several things in the past. The most common thing is to store
this information in a PHP file. It may be per server or there
could be one big file like:
<?php
if(DEV){
$server = "localhost";
} else {
$server = "10.1.1.25";
}
?>
This gets messy quickly. Option two is to deploy a …
After a discussion with my colleague Stephane Varoqui we decided
to see how Gearman and the NDBAPI could be used together. The result of the
POC was a Gearman worker and a couple of clients (clients and
workers use Google Protocol Buffers as the protocol). The
worker can:
- set/get/delete records on a single table in MySQL Cluster using the primary key
- set/get/delete "any" type. It is not possible to dynamically
add types but this is done at compile time.
- supports the following SQL data types:
(UNSIGNED) INTEGER, (UNSIGNED) BIGINT, CHAR, VARCHAR/VARBINARY
- support the following Google Protocol Buffer …
Friday was my last day at Sun Microsystems, and today is the first day at my new job (location coming soon). I’ve had a great time at Sun, and thank them for all the opportunities given to me there. I’ll be doing mostly the same work at the new gig, working on projects like Drizzle, but with a slightly different focus. For the most part my day-to-day won’t change much.
Right now I’m focusing on libdrizzle again and am implementing the prepared statement API, cleaning up the MySQL protocol support a little, and also implementing the new Drizzle client/server protocol. I’ll continue to work on Gearman as well, especially where it is relevant to Drizzle. I also need to start blogging again with specific topics in the projects I’m working on, I’ve been fairly quiet lately.
I’ll be in New Zealand next week at Linux Conf AU (yes, it’s not in AU this year). I have a …
[Read more]