6

It is recommended by SDL Tridion to have two separate database in two different machines for Tridion CM (Content Manager) and CD (Content Delivery).

One reason could be, problem/issues of one database should not affect the frontend/performance of another.

What are the other reasons for this recommendation? Please share your views for better understanding.

Currently, we have CM and Cd databases on a single machine. But, We are planning to separate the two database as per SDL's recommendation for better performance on both side.

One Point, will it not be possible to increase the current system's setup/scope (one system with all required/maximum setup) so that both will be in a single server rather than having two different machines but we will achieve the goal of increasing performance?

Thanks for your time.

  • Your first reason is a great one, even on non-production environments. Example scenario for CM would be an infinite loop in CM code (a template that calls itself) or for CD, a really bad CD API call (see the ANDs/ORs scenario). Either can seriously impact a system (worse if on the same box). – Alvin Reyes Nov 15 '13 at 5:24
10

Apart from Pankaj's reasons, also consider the following:

  • In a production (live) environment, you wouldn't want the CM database running on the front end for security reasons. The usual setup is that the back end system, in this case the Tridion CM is running completely behind a firewall and in a different network than your front end servers, which need the Broker Database;
  • As your Content Manager database grows, it tends to eat up a lot of processing power, disk IO and memory in your database instance. At some point this will block timely processing of other queries in other DBs, unless you have an enormously scaled server.
  • If you have all databases on one database instance, you have created a major single point of failure. If that database crashes you won't have a CM and you won't have a website either, so a setup like this in a production environment is pretty risky.
6

It completely depends on what kind of performance you are looking for, how many concurrent publishing of items will you be doing and what all are your performance benchmarks.

Let me tell you a practical example, We so far have done all the implementation (moderately big and huge) where we have kept CD database on the same server as that of CM database and they worked well and are still working well, however, with one of the implementation, we learnt later that practically the publishing queue will be huge at a particular instance and in addition, there will be huge transactions in Broker DB using the Broker API and this has a broken all our performance benchmarks of end application as well as the publishing process.

We ended up having a separate server for the CD database as well as we have to deploy the transport service on a separate server.

So it completely depends on the business requirement

6

The answers are basically already given, but allow me to summarize in my own view. The separation of the CM and CD database is there for the following reasons:

  1. security, you don't want your CM database server to be in a location where it can be exposed to the internet. In the disastrous event that your CD database server is ever compromised, you will at least know that your CM (unpublished) data is still safe.

  2. performance, the CM database is a high volume transactional database so it deserves its own resources, the CD database can (depending on your web farm) also receive a high load, so that too deserves its own resources.

  3. reliability and availability, since your CD database powers your website, you will want to outscale it for high availability. You might even decide to co-locate that database in different parts of the world because of that. But there probably is no need to do the exact same with your CM database (your website is accessed globally, but your Cm might just be accessed from a single location).

All in all these recommendations are given from the assumption that you are a global enterprise customer. Then these requirements should already be in your list, regardless of the solution chosen.

In the end, you should see that having separate servers for the CM and CD database(s) will also mean you can tune them better for their usage. Upscale only the server that needs it and reduce your costs of CPU idle time.

  • Many thanks for your points, it really clears my understanding. – Anupam Baksi Nov 13 '13 at 11:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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