Using Cache Partitioning in X.500 for Faster Name Resolution in X.400

The X.500 directory can help resolve X.400 routing and name resolution problems. However, useful directory assistance for X.400 is dependent upon small response times from X.500 servers. One way to decrease these response times is to introduce caching. Caching has been found to dramatically increase performance in disks, processors or databases. Recently we provided evidence showing that caching also decreases response times in X.500. In this paper, we expand on this previous work. We discuss issues related to implementing caches in X.500, and we evaluate the impact of a standard LRU cache in X.500 on the name resolution time in X.400. We then introduce partitioning, in which the LRU cache is divided into smaller LRU caches, each one associated with a diierent class of X.400 request. We describe how to dimension the partitions to obtain optimal or near-optimal performance. Our overall conclusion is that partitioning the cache further decreases the average resolution time. However, we nd two limitations with cache partitioning. Speciically, the performance of a partitioned cache is more sensitive to the amount of locality in the stream of names being resolved than that of a non-partitioned cache. Furthermore, the identiication of the diierent classes of requests (corresponding to the diierent partitions) is not always easy in practice. We brieey discuss a scheme that overcomes these limitations.