Last august, I started wanting a new API for MySQL Cluster that
could solve a few problems. Frist, if you were to use MySQL
Cluster in a LAMP application, you would be turning a two-layer
architecture (Apache and MySQL) into three layers (Apache, MySQL,
and NDB). Adding that extra tier requires more hardware and means
slower response times. Second, the one way around this was to
write native NDB API code in C++, but learning the API and
developing low-level code can require a big commitment of time. I
wanted an easier way to eliminate the extra layer.
My solution is called mod_ndb, and it is an Apache module that
runs inside a web server and connects directly to the MySQL
Cluster data nodes. It supports a "RESTful" API -- applications
make GET, POST, and DELETE requests over HTTP, and mod_ndb
provides appropriate HTTP responses. Because it is HTTP,
responses can be cached by proxies in a well-defined way, and
data can be delivered …
Evans Data Group has recently released the results of their latest developer survey showing that MySQL usage is up by 25%. In fact, 40% of developers surveyed are using MySQL. According to Evans:
"In an increasing number of ratings categories, we're seeing open-source databases meeting or exceeding proprietary databases."
Evans indicated that MySQL was growing in popularity due to its adoption as part of the open source LAMP stack (Linux / Apache / MySQL / PHP). With more developers using open source (65% in North America) MySQL usage is expected to continue to grow in the future.
- Evans Data: MySQL Gains 25% Market Share of Database Usage
- CNet: …
I blogged some months ago about an article written by Mr Puhakka on how to build a billion dollar business around open source software. Last Friday I attended Mr Puhakka’s presentation where he analyzed MySQL’s possibilities on becoming so (copied from his slides):
- Find or create a great value proposition. The price vs. quality ratio of MySQL is in place or even superior as MySQL has this with its database offering costing a fraction of competing incumbents.
- Find a quickly growing market. Rapidly growing markets tend to be much more forgiving of mistakes than …
This is a good read for anyone who has ever tried
to pivot data from a table in MySQL using client side code like
PHP when you can with some careful query construction do it in
MySQL.
--
Copyright 2006-2008 Andrew Rose [rose.andrew@gmail.com] [andrewrose.co.uk]
I’ve used OfflineIMAP for quite a while now. On the whole I’m fairly happy with it. Today I sent this to the list:
Forgive the potentially bad python, not my native tongue :)
This patch is motivated by three things:
- offlineimap is extremely slow at syncing lots of locally
deleted
messages
- offlineimap uses lots of memory
- LocalStatus files aren’t written safely (a hard crash can
cause
corruption)
- I’ve been
bitten by this in the past, causing a complete resync of
the folder… so I get duplicate messages.
I am currently using 4.0.14 (from Debian) with this patch. I used
it to
convert the files and everything. Seems quite reliable and quick.
In my tests, execution time for a normal sync is relatively the same.
Execution …
[Read more]Having taken a look at the 35 MySQL Summer of Code applications, I can now say that we have several very strong applications, such as:
- IPv6: Enabling MySQL to connect over IPv6 internet
- MySQL Based Atom Store (storing Google GDATA in MySQL)
- Test case development / Load testing
- Test suite development
- MySQL Auditing Software
- The “anti-profiler” - a performance analysis tool for database engines
For several of the above, we have multiple good applications. The applicants come from recognised universities across the world, not just the US and Europe. Some have extensive experience from professional software development. Sadly, we will end up having to reject several …
[Read more]
That's right! Today, 2 years ago, I started my job as Support
Engineer at MySQL! Ups, and downs along the way, but hey, what
love relation doesn't have that! Great Company!
To celebrate it I was given the opportunity today to give an
online web presentation about MySQL Performance Tuning Best
Practices. I'm used to give such seminars, getting better each
time. But with this one, there were 2 problems: I was nervous
because I couldn't see the people, and second: it was in Dutch!
Although my mother tongue, I don't talk it everyday. And surely
no technical terms. I put some German words in there as well I
think, hehe..
That's right! Today, 2 years ago, I started my job as Support
Engineer at MySQL! Ups, and downs along the way, but hey, what
love relation doesn't have that! Great Company!
To celebrate it I was given the opportunity today to give an
online web presentation about MySQL Performance Tuning Best
Practices. I'm used to give such seminars, getting better each
time. But with this one, there were 2 problems: I was nervous
because I couldn't see the people, and second: it was in Dutch!
Although my mother tongue, I don't talk it everyday. And surely
no technical terms. I put some German words in there as well I
think, hehe..
I just filed a bug regarding slow queries executed by replication thread are not being logged to the slow query log.
This is not a big deal but it is ugly little gotcha which I think few people know about. It is especially bad if you're using tools to analyze slow query log to find what queries take up the most resources on your server - in certain configurations replication load itself may be very significant contributor.
But even if you do not, as I wrote in the bug report it is quite handy to have this information our where as query times on master and slave can be different in a lot of circumstances.
One more thing to consider - slow replication queries also identify replication lag, ie if you have query which ran 10 seconds on the slave and …
[Read more]In a heavily webbed, automated, interconnected world with most data stored on relational databases, we can sometimes forget that there are indeed many situation where you simply want to FTP a file from one place to another.
That process in itself holds many dangers as I pointed out to someone on the forum today. Let me re-cap that post here on the blog…
Suppose your files are coming in using FTP to a local directory.
A file is being written, let’s call it
FILE_20070328.txt.
Now, in advance you don’t know the size of that file. Let’s say
it’s 10MB and takes 30 seconds to FTP.
In your transformation you detect this file and start working.
Chances are very high that you’ll be reading an incomplete
file. (See also this
technical tip on variables and file handling)
There are 2 ways to …
[Read more]