Global Index Catalog is a very interesting feature in OUD which basically helps in metadata distribution. It provides horizontal sc
When an OUD 11g proxy server receives a request, the proxy server looks up the attribute entry in the global index catalog, and forwards the request to the correct partition. The use of a global index catalog lessens the need for broadcasts to locate distributed directory entries.
Lets try to understand this with an example in layman language:
a) Lets take a case where I’ve got separate standalone directory servers and databases. Now with data distribution there’s about five different algorithms I can define for the proxy server to use to physically place the data.
b) Lets again assume that I am using Numeric Data Distribution and using employeeId as unique attribute for placement of data. This is also known as placement attribute.
c) If my employeeId is less than 100000 we’re going to go to server one. But if it’s
more than 100000 and less than 200000 we’re going to go to server two and if it greater than 200000 and less than 300000 then go to Server three.
d) Now when a request is made to do an add operation, the data distribution algorithm, based on employeeId attribute, determines which physical directory the data will be placed in.
e) If I then go and query the information I’ve already placed, based on the employeeId attribute, the proxy server check for employeeId attribute, lets say it is 11,439 and then the server determines that it needs to go to server two to retrieve this. So
it dispatches those requests.
f) Now what if I want to retrieve the data that I’ve distributed on a different attribute? Lets say emailID?
g) Ideally proxy server has no idea where this data physically is since we’re querying on a
non-placement attribute. So server needs to scan all the entries and all the
directory servers. Here I only have three servers, but there could be a lot more of them. You can think of huge unnecessary overhead.
h) Here I can make use of global index catalog. I can configure another Berkeley database with proxy server that doesn’t hold the ldap data. But it contains
something called a global index catalog. Now if can secify that I want to place the data on
employeeId attribute, but these are other attributes using which I should be able to retrieve my data such as DN or emailID.
i) Proxy server can then create required additional indexes while placing the data. So now if I do a query on an emailID, a non-placement attribute, proxy server can read that in the database and decide on which server to go for retrieval of data.
j) It doesn’t need to scan all the directories in this case, because even though we can only use one attribute for physically placing the data, we can use multiple attributes for potential retrieval.
I hope the concept of global index catalog is clearer now 🙂