Like many organisations, Blog-City relies heavily on its database for its daily business. But interestingly, Blog-City has chosen to underpin its business with the free and open source database MySQL, 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.
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.
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.