Monday, June 29, 2009

How to scale Directory Server?

Again, the following typical question is asked whenever I provide Directory Service consultancy:

How do we scale our Directory Service?

There are actually 2 considerations - READ and WRITE operations.

The answer to READ operation is very simple. 
  1. Add more nodes;
  2. Configure replication across all nodes;
  3. Place a load-balancer in-front of all nodes;
Done. Simple!


The answer to WRITE operation is far more complex.

  • If the solution is to cater for more WRITE than READ, then I'll ask "Are you actually looking for a database?" (LDAP is built for fast and frequent read ops, with occasionally write ops.)
  • You'll be surprised at the answers you get. There are really customers who cannot differentiate between LDAP and database.
  • If the customer is really sure they need Directory Service, then I'll suggest that they spilt their users into various organizations/groups. Then each logical group will be stored in different LDAP sources.

Quoted from OpenDS site:
Note that you cannot use replication to scale write operations because a write operation to one directory server results in a write operation to every other server in the topology. The only way to scale write operations horizontally is to split the directory data among multiple databases and place those databases on different servers.


No comments:

Post a Comment