views:

70

answers:

3

The only good reference that I can find on the internet is this whitepaper, which explains what database tiering is, but not how it works:

The concept behind database tiering is the seamless co-existence of multiple (legacy and new) database technologies to best solve a business problem.

But, how does it implemented? How does it work?

Any links regarding this would also be helpful. Thanks.

A: 

Database tiering is just a specific style of tiering. There are also application tiering and service tiering. It's a form of scalability.

What exactly are you asking? This question is rather vague.

drachenstern
@drachenstern: Okay, what is tiering, first of all? What I wanted to know is how exactly is database tiering implemented?
Amoeba
@Primx ~ When someone says "how is XYZ implemented?" it means they don't have the knowledge or expertise to set it up. Basically there are different ways of tiering. It depends on what you're trying to do. There is no "one true way" to tier. You could use a cluster of servers hooked through a single front-end to have a virtually expandable database, you could use a garden of servers for an internal app, you could put each of several applications on their own server. It depends on what the problem is.
drachenstern
A: 

This is a PDF from a course at Ohio State. What it discusses is a bit over my head, but hopefully you might understand it better.

Ryan
+4  A: 

I think the idea of that document is you to put "cheap" databases in front of the "expensive" databases to reduce costs.

For example. Let's assume you have an "expensive" db...something like Oracle, or DB2 or even MSSQL (more realistically it's probably more of an issue with a legacy DB system that is not supported much or you need specialized resources to maintain). A database engine that costs a lot to purchase and maintain (arguably these are not expensive when you take all factors into consideration. But let's use them for the example).

Now if you suddenly get famous and your server starts to get overloaded what do you do? Do you buy a bigger server and migrate all your data to that new server? That could be incredibly expensive.

With the tiering solution you put several "cheap" databases in front of you "expensive" database to take the brunt of the work. So your web servers (or app servers) talk to a bunch of MySQL servers, for example, instead of directly to the your expensive server. Then these MySQL servers handle the majority of the calls. For example, they could handle all read-only calls completely on their own and only need to pass write-calls back to the main database server. These MySQL servers are then kept in sync via standard replication practices.

Using methods like this you could in theory scale out your expensive server to dozens, if not hundreds, of "cheap" database servers and handle a much higher load.

Zippit