US 7,500,080 B2
Facilitating non-contiguous allocation of a large object within a java heap
Phani Gopal V. Achanta, Austin, Tex. (US); Robert Tod Dimpsey, Austin, Tex. (US); and Harshal Hemendra Shah, Freemont, Calif. (US)
Assigned to International Business Machines Corporation, Armonk, N.Y. (US)
Filed on Feb. 14, 2008, as Appl. No. 12/31,395.
Application 12/031395 is a continuation of application No. 10/948276, filed on Sep. 23, 2004, granted, now 7,360,053.
Prior Publication US 2008/0133867 A1, Jun. 05, 2008
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 12/00 (2006.01); G06F 13/00 (2006.01); G06F 13/28 (2006.01)
U.S. Cl. 711—171 12 Claims
OG exemplary drawing
 
1. A system for facilitating efficient allocation of large objects in a memory heap, comprising:
a server system communicatively connected to a network;
a broker layer running within said server system for detecting a large object passing through said server system, wherein a size required for allocation of said large object within a memory heap exceeds a maximum contiguous free space within said memory heap, wherein said broker layer operates on top of a virtual manager layer that manages allocations within said memory heap and for passing said large object between a plurality of components of said broker layer wherein at least one of said plurality of components requires additional allocation space for said large object, wherein said plurality of components view said large object as a single data entity and said virtual manager layer views said large object as said plurality of pieces; and
a chunking controller within said broker layer for describing said large object by an underlying array of said large object divided into a plurality of pieces of a size not exceeding said maximum contiguous free space, requesting, by said broker layer, allocation by said virtual manager layer of each of said plurality of pieces within said memory heap, detecting an allocation request for said large object by one of a plurality of components receiving said large object within said broker layer to said virtual manager layer, and adjusting said underlying array to reflect said allocation request for said large object.