In some cases, you might want to use multiple tiers of DAHs. For example:
When dealing with very large sets of data, distributed over many Content servers.
When mirroring an important set of data across multiple sites to provide failover guarantees.
In the case of a large dataset distributed over multiple Content servers, a multitier DAH structure is important for performance reasons as when the number of Content servers gets large. Although every setup differs, generally you might find that a multitier DAH structure gives you a performance gain when you have more than 16-20 Content servers.
A system has 20 Content servers, with the dataset evenly distributed between them, and a single non-mirror mode simple combinator DAH.
To improve performance, you could replace the single DAH with four DAHs, each distributing actions to five Content servers in simple combinator mode. Then, you configure a single DAH to distribute actions to the four other DAHs, also in simple combinator mode.
You send all actions to the single top-tier DAH. The four child servers combine the responses from their child servers, so the top-tier DAH needs only combine four sets of results.
In the case where you are mirroring data over multiple sites, you can provide failover with a DAH. If each site has a top-level DAH, you can add a further DAH in failover mirror mode to communicate with each top-level site DAH.
Again, you send all actions to the top-level DAH of the entire system, which sends the action to an available site, determined by the failover algorithm.
When you are configuring a multitier DAH structure, consider the following tips:
If the response is required from each child server, use strict mode for each DAH. DAH relays strict mode errors up the chain. If a DAH in mirror mode receives a strict mode error (or an error that indicates no child servers are available), it attempts to failover to a mirrored child server.
If your client applications request pages of results, consider using the DAHStartState
action parameter. This option reduces the number of results that DAH needs to request from its child servers.
Configure AbridgedThreshold
to a suitable value in a multi-tier DAH system. This option greatly reduces network traffic between the DAH components.
The following are some common errors that occur when building multitier DAH structures:
Machine resources. When setting up multiple DAHs on a machine, make sure you consider the resources of that machine. In particular, TCP resources on Windows machines can cause subtle errors that are difficult to diagnose. If DAHs in a multitier system report memory errors when processing responses, but you have sufficient RAM, check the TCP settings in the Windows registry.
Recursive virtual database errors. Strict mode errors do not get relayed up a chain of DAHs when one of the DAH servers contains a recursive virtual database (one that points to other virtual databases in the same DAH). In this case, consider replacing the virtual databases with further DAH servers in the multitier structure.
|