Jeremy moved the emt svn repository to google code last night. This gives it better integration with the issues tracker, google’s kick ass source browser and gives me the ability to add more commit rights without giving people accounts on servers. Check out the new source tab. Especially the part that lists the field objects. EMT ships without about 100 metrics not counting dynamic sub fields including checks for mysql, apache, memcache, per process memory, network, and other system stats.
I was just reading up on the syntax for index hints in MySQL, and noticed this: An index_name value need not be a full index name. It can be an unambiguous prefix of an index name. If a prefix is ambiguous, an error occurs. I actually prefer not to have extra “syntactic sugar” features such as this. It helps avoid bugs and unexpected behavior. Even if I don’t use it intentionally, I can get bitten by it, if someone adds another index whose name has the same prefix as one that I already use:
Most database companies would be proud to say that their products perform optimally out of the box. It means they accomplished a Herculean feat of engineering. But most databases have configuration options because this is almost impossible. For example, MySQL has scores of tuning options, and it needs a lot more. So when someone benchmarks your database and makes you look bad, usually you can say “that benchmark was run by someone who doesn’t know how to properly tune my database software.
Recently I rewrote the whole internal grid editing stuff to have
bidirectional record sets. Means, editing grid data is no longer
restricted to the Data tab. Any Query tab now
allows you to edit your row data - at least if it's a simple
query without joins and if it contains sufficient key columns.
This was one of the most wanted features by users, described in
issue #723.
As a side effect, query results are client-sortable now. When you
click a column header, the grid itself is just sorted. This is
surely not a replacement for having an ORDER BY clause in your
query, but helps a lot to work quicker with simple grid results.
Note that the Data tab works different here - the SELECT
query is reposted with an adjusted ORDER BY clause. Only for the
query tabs this is not possible as the query is totally user
edited, no internal …
An unusual
href="http://www.meetup.com/Distributed-Work/calendar/13300733/">Distributed
Distributed Work Meetup was held last night in four
different
cities simultaneously, arranged through many hours of hard work
by
href="http://www.meetup.com/Distributed-Work/members/9584137/">Lukas
Biewald and his colleagues at distributed work provider
href="http://crowdflower.com/">CrowdFlower.
With all the sharing of experiences and the on-the-spot
analyses
taking place, I didn't find an occasion to ask my most
pressing
question, so I'll put it here and ask my readers for comments:
How can you set up crowdsourcing where most people work for free
but
some are paid, and present it to participants in a way that makes
it
seem fair?
This situation arises all the time, with paid participants such
as
application developers and community …
Not part of my Don’t Assume series, but when a client states “Why is my database slow”", you need to determine if indeed the database is slow.
Some simple tools come to the rescue here, one is Firebug. If a web page takes 5 seconds to load, but the .htm file takes 400ms, and the 100+ assets being downloaded from one base url, then is the database actually slow? Tuning the database will only improve the 400ms portion of 5,000ms download.
There some very simple tips here. MySQL is my domain expertise and I will not profess to improving the entire stack however perception is everything to a user and you can often do a lot. Some simple points include:
- Know about blocking assets in your <head> element, e.g. .js files.
- Streamline .js, .css and images to what’s needed. .e.g. download a 100k image only to resize to a thumbnail via style …
If you’ve been reading up on the various NoSQL offerings and have wanted to try out one but don’t know how to get started, this is one of the easiest ways. I chose MongoDB for this example because I’m going to start using it for a project that needs features that MySQL isn’t as fast at: namely denormalized data with billions of rows. MongoDB has plenty of drivers for other scripting and high-level languages but I’ll focus on the PHP driver today. If there is interest I can do a write up on Python usage later. This example is limited to CentOS, Fedora, and Redhat 5 servers that use the yum package management system. For more information you can reference their download page: http://www.mongodb.org/display/DOCS/Downloads
First install the prerequisites:
- sudo yum install gcc php php-pear
Then install the mogo php extension via …
[Read more]I just spotted the youtube video of my OpenSQL Camp (Portland 2009) talk on An Open Storage Engine API. I talked about some of technical issues for implementing storage engines across many SQL front ends, not just MySQL.
You can find this talk and other mostly technical material at http://tokutek.com/technology/.
MariaDB 5.1.44b Linux and Solaris binaries, Ubuntu/Debian/CentOS packages, and source are now available for download.
This is a bugfix/security release of MariaDB 5.1.44.
From the MariaDB 5.1.44b Release Notes:
MariaDB 5.1.44b fixes a buffer overflow that might potentially allow an authenticated user to run arbitrary code inside the server. It also has a fix for MySQL Bug #53371: “Security hole with bypassing grants using special path in db/table names.” In all other respects, it is the same as MariaDB 5.1.44.
See the MariaDB 5.1.44 Release Notes for a summary of the differences between MariaDB 5.1.42 and MariaDB 5.1.44.
A Windows binary is coming …
[Read more]Hi all!
I’ll be giving an online webinar for Drizzle contributors on Saturday, May 15th @ 1am GMT (In the U.S. this is Friday, May14th @ 9pm EDT, 6pm PDT).
Note that the DimDim widget below shows the time as May 14th @ 8pm. The widget is wrong, since DimDim does not account for daylight savings.
Space is strictly limited to 20 people and this will be done via DimDim.com. Please register for the webinar by entering your email address in the widget below and clicking “Sign Up”.
The agenda for this 2-3 hour tutorial will be:
- First Steps
- Getting registered as a contributor for Drizzle on Launchpad
- Registering your SSH keys with Launchpad
- Picking up and creating blueprints
- Basics of Bazaar
- Setting up a local code repository for …