Saturday, September 19, 2009

Horizontal Scalability of Address Book Server


We are in the midst of setting a new set of servers for our OpenMail.SG hosting. By the way, OpenMail is a corporate mail hosting service based on Sun Java Communications Suite.


One of the components of Sun Java Messaging Server is the Address Book Server. 



The Address Book Server is nothing but a tree in the same LDAP server which the Communications Suite uses.
 
So I was discussing with my colleague how to to scale the Address Book Server when the mail accounts increase.

It is pretty simple if we take a look at a sample user entry as shown below:

# entry-id: 3858
dn: uid=abc, ou=People, o=openmail.sg,o=isp
uid: abc
userPassword: {SSHA}xHb17CklmBxtaqa517+9P4rqAmS9KzMw9W3iAg==
initials: SA
mail: abc@openmail.sg
inetUserStatus: active
mailUserStatus: active
mailQuota: -1
mailMsgQuota: -1
psRoot: ldap://ldap.openmail.sg:389/piPStoreOwner=abc,o=openmail.sg,o=Pi
ServerDb

There is this ldap attribute "psRoot". This indicates where the Address Book Server is for this particular user account.

So to scale horizontally, it is as simple as:
1. setting up a new LDAP server 
2. migrating the o=PiServerDB tree
3. changing the user entry to point to the new LDAP server

Read more here and here.


No comments:

Post a Comment