[Date Prev][Date Next]
IDL cache & SLAB cache for IDL stack - an IBM contribution
I have uploaded two cache designs through OpenLDAP ITS this morning.
ITS#2182 : IDL cache
ITS#2183 : SLAB cache for IDL stack allocation
The IDL cache stores recently used IDLs in order to reduce the hash access
method of Berkeley DB,
while the SLAB cache stores recently allocated IDL stacks in order to
eliminate costly invocation
of page frame allocation / deallocation routines observed in the Linux
kernel profile trace.
Benefits from IDL and SLAB cache include :
1) Improvement in search-only performance. Due to the elimination of index
the search performance is improved by a lot. This is particularly true
when IDL is large in size,
such as in the SUBTREE IDL at a base entry having a large number of
2) Improvement of the performance of mixed workload having both search and
Because IDL cache can eliminate index DB access for search,
interference between index DB
access for retrieval and update will be reduced. Invalidation of IDL
cache entry can be efficiently
performed on an entry-by-entry basis.
3) SLAB cache relieves pressure to the Linux kernel page handling routines
by a lot.
Also it does not consume much additional memory, because the number of
SLAB caches active
at a time does not exceed the number of concurrent worker threads. For
IDL stack for too high a filter depth does not go into the SLAB cache.
Please refer to ITS#2182 and ITS#2183 for further description and code for
Also, there is a combined patch at :
Any comments are welcome !
Jong Hyuk Choi
IBM Thomas J. Watson Research Center - Enterprise Linux Group
P. O. Box 218, Yorktown Heights, NY 10598
(phone) 914-945-3979 (fax) 914-945-4425 TL: 862-3979