Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Isn't it possible to scale database servers through virtualization, like forever? I like to keep most of the workload on database server because it optimizes queries and the architecture decreases the bandwidth use between db server and web server. Is there any reason why I shouldn't do it in terms of scalability?

share|improve this question

closed as not a real question by Phil, Marian, Mark Storey-Smith, ypercubeᵀᴹ, Cade Roux Apr 18 '13 at 14:48

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

Huh? Scaling data for reads is easy - especially if the data can be a bit stale. Scaling data for writes, on the other hand, is a pretty complicated problem. There is no magic "web scale" button for any RDBMS. – Aaron Bertrand Apr 18 '13 at 14:29
The main reason not to do this is that you're paying DB licensing costs for any CPU capacity you use on that system. If you run app code that doesn't need to be there you're paying 1-2 orders of magnitude over the money for your CPU capacity. – ConcernedOfTunbridgeWells Apr 18 '13 at 14:30
It depends on what you are doing. Not sure what to tell you here fella. Question is to large in scope and lacking in detail necessary to answer it. – Zane Apr 18 '13 at 14:41

"Isn't it possible to scale database servers through virtualization, like forever?"

Yes, you can make more and more database servers and you can also make a larger and larger database server (but the scale up limit can be reached very quickly), but in the scale out scenario are the servers you mention supposed to cooperate in any way or are they completely independent.

The CAP theorem doesn't just apply to "database" servers, but since web servers aren't really considered as a "write" part of a distributed data store, they are usually considered to be easily scalable by themselves:

The fundamental problem for scalability in database is in the consistency part of the CAP theorem - all those ACID guarantees that databases have.

"Is there any reason why I shouldn't do it in terms of scalability?"

The reasons you may not want to put extensive processing in your database depend a lot on what your scalability path looks like. It can make sense to put processing in the database instead of shipping a large amount of information out of the database that is simply discarded. But scalability methods can vary from scaling up to scaling out, and even scaling out mechanisms can vary.

Ultimately the answer as to what to do with your architecture is going to depend upon your requirements and problem domain and expected future path, none of which you have given in your question.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.