Scaling relational databases

IBM DeveloperWorks recently published two articles addressing scalability techniques for relational databases using Java technologies. The both focus on horizontal scaling (also known as sharding and now, apparently, slicing too), which according to wikipedia, is when

rows of a database table are held separately, rather than splitting by columns (as for normalization). Each partition forms part of a shard, which may in turn be located on a separate database server or physical location.

Sharding duplicates a database model (or schema) across multiple database servers (this is different than traditional partitioning, which is row based and usually on the same server).

The first article entitled “Sharding with Hibernate Shards” explores when sharding works, and when it doesn’t, and then demonstrates a simple Hibernate-Spring application capable of handling terabytes of data. What’s more, this article was authored by Beacon50′s managing partner, Andrew Glover.

The second article entitled “Scaling OpenJPA applications with Slice” profiles Slice, which is a module for distributed persistence in OpenJPA. Slice enables an application developed for a single database to adapt to a distributed, horizontally partitioned, possibly heterogeneous, database environment. This all occurs without any change in the original application code or the database schema.

Both articles are a great starting point for exploring how to scale, via the application level, relational databases.

Posted in software development | Tagged , , , , , , , , , , | Leave a comment

Git podcast

We’re excited to announce that IBM developerWorks has launched a new series of podcasts hosted by Beacon50′s Managing Partner, Andrew Glover. These podcasts feature technical discussions with various technology luminaries on a diverse set of subjects ranging from Git to Clojure to Griffon and even .NET (just to name a few!).

The first podcast in the series is a discussion about Git with Matthew McCullough. We think you’ll find, as we did, his excitement regarding Git is infectious — if you don’t want to start using Git after listening to Matthew, then you probably never will! So what are you waiting for? Have a listen!

Posted in news, software development | Tagged , | Comments Off

Understanding the CAP Theorem

When working with Amazon’s SimpleDB, it’s paramount to understand the differences between cloud based, distributed storage and the traditional relational model. Specifically, it’s important to conceptualize the notion of eventual consistency, which is embodied in what’s know as the CAP Theorem.

Sid Anand, the author of the Practical Cloud Computing blog has done an excellent job of summarizing the CAP theorem in his entry entitled “The CAP Theorem Distilled” — it’s well worth the read.

Posted in cloud computing | Tagged , , , , | Comments Off