US 7,469,268 B2
Managing data received from processes of a distributed computing arrangement
Susanne M. Balle, Hudson, N.H. (US); and David C. P. LaFrance-Linden, Arlington, Mass. (US)
Assigned to Hewlett-Packard Development Company, L.P., Houston, Tex. (US)
Filed on Aug. 03, 2004, as Appl. No. 10/910,679.
Prior Publication US 2006/0031848 A1, Feb. 09, 2006
Int. Cl. G06F 15/16 (2006.01); G06F 15/173 (2006.01)
U.S. Cl. 709—202  [709/223; 709/252] 15 Claims
OG exemplary drawing
 
1. A processor-based method of managing, at a plurality of processing nodes communicatively coupled in a tree arrangement that converges at a root node, data received from a plurality of processes of a distributed computing arrangement, comprising:
in a first processing node of the plurality of processing nodes,
receiving data objects from a first subset of the plurality of processes;
waiting for a waiting period to receive, from a second subset of the plurality of processes, one or more expected data objects in addition to the received data objects;
determining the second subset of processes to be non-responsive based on arrival times of the received data objects relative to a current time and expiration of the waiting period;
wherein determining the set of non-responsive processes includes,
making a first comparison between a first timeout variable and the arrival time of a first object of the data objects relative to the current time,
making a second comparison between a second timeout variable and the arrival time of subsequent objects of the data objects relative to the current time, and
determining the set of non-responsive processes based on whether the greater of the first and second comparisons indicates a timeout condition has occurred;
aggregating the received data objects into a set of data objects without further waiting for data objects associated with the non-responsive processes;
sending the set of data objects and a reference to the non-responsive processes from the first node to a second processing node of the plurality of processing nodes, wherein the second processing node is nearer to the root node than is the first processing node; and
in the second processing node, aggregating the set of data objects received from the first processing node with data objects received from a third subset of the plurality of processes and sending the set of data objects to a third processing node that is nearer to the root node than is the second processing node without waiting for data objects associated with the non-responsive processes.