[Date Prev][Date Next] [Chronological] [Thread] [Top]

IDL cache & SLAB cache for IDL stack - an IBM contribution






All,

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
DB access,
    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
subordinate entries.
2) Improvement of the performance of mixed workload having both search and
update.
    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
security reasons,
     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
each patch.
Also, there is a combined patch at :
ftp://ftp.openldap.org/incoming/jongchoi-IDL_SLAB-021115.diff

Any comments are welcome !

- Jong

------------------------
Jong Hyuk Choi
IBM Thomas J. Watson Research Center - Enterprise Linux Group
P. O. Box 218, Yorktown Heights, NY 10598
email: jongchoi@us.ibm.com
(phone) 914-945-3979    (fax) 914-945-4425   TL: 862-3979