Patent ID: 7124266

Claim:
A computer-implemented method, comprising: establishing a cache comprising a plurality of memory pools, wherein each memory pool comprises a plurality of buffers of different sizes; assigning a freelist comprising a plurality of sub-freelists to each memory pool of the cache, wherein at least one sub-freelist of a given freelist is configured to include one or more buffers of at least a first size, and wherein at least another sub-freelist of the given freelist is configured to include one or more buffers of at least a second size different from the first size; selecting a particular memory pool of the plurality of memory pools to store a cached version of a given data object, wherein said selecting is performed based at least in part on an index value derived from the given data object; in response to a request for a free buffer of a desired size from the particular memory pool to store the cached version of the given data object: identifying a particular sub-freelist of the freelist assigned to the particular memory pool, wherein the particular sub-freelist is configured to include buffers of at least the desired size; and searching the particular sub-freelist to obtain a free buffer of at least the desired size.