Patent ID: 8108649

Claim:
A method of operating a memory system, the method comprising: allocating a portion of a memory unit in a computing system as a memory heap, the heap including a metadata section and a plurality of segments, each segment having a segment size; creating a free list array and class-size array in the metadata section, the class-size array being created such that each element of the size-class array is related a particular one of the plurality of segments and the free list array being created such that each element of the free list array is related to a different size class; receiving a first memory allocation request for a first object; determining that the first object is a small object; assigning a class to the first object; identifying a first segment to place the first object in by examining the size-class array; subdividing the first segment into multiple portions; determining a first head portion of the first segment, the first head portion representing the first open portion of the segment and being determined by examining the free list array; allocating the first head portion for the first object; receiving a command indicating that a transaction is complete; and clearing the free list array and the size-class array upon receipt of the command.