
Like many organisations,Blog-Cityrelies heavily on its database for its daily business. But
interestingly, Blog-City has chosen to underpin its business with
the free and open source databaseMySQL, which is entirely community
supported.
Blog-City is a privately held Scottish limited company that
licenses and runs blogging platforms for many large companies,
individuals and communities.
The firm has been in business for five years and is run by the
technologists who developed and own
BlueDragon,
a
ColdFusion markup language J2EE/.net runtime engine that powers
MySpace.com, as well as Blog-City's own Blog-City.com.
As such, the firm is well versed in free and open source
technologies, and is a big user of
Fedora Linux and Java, says Alan Williamson, chief technology
officer of Blog-City.
Scalability challenge
He says that the main driver behind adopting MySQL was that the
firm needed a proven database that was low in cost, as many of
Blog-City's blogging services are free or low cost. The database
also needed to be able to scale up as business grew.
Williamson says that three options were originally on the table,
with
Oracle being a strong contender because Blog-City's chief
executive officer had a lot of experience with it. However, Oracle
was relatively costly, and could not, at the time, match MySQL
feature for feature, so the firm ruled it out.
The open source database
PostgreSQL was also an option, but the Java database
connectivity driver support was not high enough quality at the
time, and community support for the operating system was not as
great as for MySQL, according to Williamson.
Blog-City's technology team opted to use MySQL, and had been
using version 3 before the company's inception. It is now on
version 5, and Williamson describes the database as "the only
foreign piece of code" in its IT system, because the firm has
developed and owns its stack from the application server to the web
server.
Security issues
The web server is interesting because it also acts as a traffic
monitor and a firewall, tracking and whiteboxing potential
attackers when it detects them.
It integrated MySQL into these home-grown applications, as well
as its BlueDragon J2EE runtime engine that is integral to the
website.
Linking the IT system into the MySQL database was a standard
exercise, says Williamson, and uses normal JDBC APIs. He describes
the firm's setup as being based on a 28Gbyte MySQL database,
nicknamed "the mothership", and various additional MySQL databases
in other configurations.
"MySQL's uptime is 410 days at the moment it just works. It is
also the database where all the blogs and rights are held, and
drives a different to each user. We dynamically create every page,
and it is up to our users to determine what they see, so the
database is a really important part," Williamson says.
The firm has replicated some of the data from the "mothership"
across its Fedora 5 Linux-based
Dell blade server farm, connecting up machines with a 1Gbyte
internal network. By doing this, it can ensure that one particular
machine does not become overwhelmed by the workload. The system is
also replicated offsite.
Blog-City pulls data out of the My SQL databases using
Linux-based Perl and shell scripts to give their users granular
statistics about their individual blogs. "Who is hitting them,
where they come from you cannot give people enough stats,"
Williamson says.
The firm also runs a large number of monitoring scripts to
ascertain the health of the database, track waves of activity and
create graphs for themselves and users.
The firm has a very large data set but chose not to use MySQL's
partitioning system. Rather than holding all its data in a single
monolithic table, it has split it into "clouds", but these sit in
one logical table bed. "It is all partitioned off in different
ways, and we have automated scripts so each cloud is banded
correctly. This has helped it to run efficiently and makes sense,
as different users' data will never need to be cross referenced,"
Williamson says.
Blog-City's main measurements of success for the system are
based on the speed of response for the blogging web sites. It aims
to deliver a page to the user in under two seconds, and if certain
operations take more than 15 seconds to complete, the system
generates an automatic e-mail to investigate why.
"We could not have succeeded as a company without MySQL. It is
free and completely community supported and we have never had a
problem with it, though we have had problems with Java. There is a
level of risk with relying on open source if something goes down at
two in the morning, you or your tech people have to be willing to
jump in and investigate and ask questions in the technical chat
rooms. But in reality, if you wanted to put a heart monitor on one
open source program, it would be MySQL," Williamson says.