Large-scale network querying and reporting
First Claim
1. A computer-implemented method, comprising:
- at a server of a network comprising a non-static collection of machines;
receiving an information request through an interface provided by the server, the information request specifying a type of information to be collected from the non-static collection of machines;
in response to the information request, sending a request message to a first machine of a message propagation path formed by a plurality of machines currently coupled to the network,wherein the request message specifies the type of information to be collected,wherein the request message is propagated along the message propagation path from the first machine, through one or more intermediate machines of the message propagation path, to a second machine of the message propagation path, andwherein, during the propagation of the request message from the first machine to the second machine, the request message accumulates respective local result information available to each machine along the message propagation path before being forwarded to a next machine along the message propagation path; and
receiving a report message from the second machine, wherein the report message is generated by the second machine based on at least the result information accumulated in the request message received by the second machine, wherein each of the first machine and the one or more intermediate machines has performed a statistical evaluation of the accumulated result information in the request message to determine whether to continue the propagation of the request message to another machine along the propagation path and to determine whether to report currently accumulated result information to the server.
1 Assignment
0 Petitions
Accused Products
Abstract
A server receives “registration” messages from nodes in a network, sufficiently infrequently to prevent overburden. Registration messages include information about registering nodes, other nodes, or node relationships. The server sends “instruction” messages to registering nodes, requesting information about the network. Each registering node obtains the requested information, and forwards those messages to other nodes, which act similarly. Nodes receiving instruction messages sometimes send “reporting” messages to the server, providing information it originally requested. The server thus receives detailed information about the network, without communicating with too many nodes, and without aggregating too much of that information. The server can interact with users using only resources growing at O(1) with the size of the network.
58 Citations
21 Claims
-
1. A computer-implemented method, comprising:
at a server of a network comprising a non-static collection of machines; receiving an information request through an interface provided by the server, the information request specifying a type of information to be collected from the non-static collection of machines; in response to the information request, sending a request message to a first machine of a message propagation path formed by a plurality of machines currently coupled to the network, wherein the request message specifies the type of information to be collected, wherein the request message is propagated along the message propagation path from the first machine, through one or more intermediate machines of the message propagation path, to a second machine of the message propagation path, and wherein, during the propagation of the request message from the first machine to the second machine, the request message accumulates respective local result information available to each machine along the message propagation path before being forwarded to a next machine along the message propagation path; and receiving a report message from the second machine, wherein the report message is generated by the second machine based on at least the result information accumulated in the request message received by the second machine, wherein each of the first machine and the one or more intermediate machines has performed a statistical evaluation of the accumulated result information in the request message to determine whether to continue the propagation of the request message to another machine along the propagation path and to determine whether to report currently accumulated result information to the server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A non-transitory computer-readable medium having instructions stored thereon, the instructions, when executed by one or more processors, cause the processors to perform operations comprising:
at a server of a network comprising a non-static collection of machines; receiving an information request through an interface provided by the server, the information request specifying a type of information to be collected from the non-static collection of machines; in response to the information request, sending a request message to a first machine of a message propagation path formed by a plurality of machines currently coupled to the network, wherein the request message specifies the type of information to be collected, wherein the request message is propagated along the message propagation path from the first machine, through one or more intermediate machines of the message propagation path, to a second machine of the message propagation path, and wherein, during the propagation of the request message from the first machine to the second machine, the request message accumulates respective local result information available to each machine along the message propagation path before being forwarded to a next machine along the message propagation path; and receiving a report message from the second machine, wherein the report message is generated by the second machine based on at least the result information accumulated in the request message received by the second machine, wherein each of the first machine and the one or more intermediate machines has performed a statistical evaluation of the accumulated result information in the request message to determine whether to continue the propagation of the request message to another machine along the propagation path and to determine whether to report currently accumulated result information to the server. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A server system of a network comprising a non-static collection of machines, comprising:
-
one or more processors; and memory having instructions stored thereon, the instructions, when executed by the one or more processors, cause the processors to perform operations comprising; receiving an information request through an interface provided by the server, the information request specifying a type of information to be collected from the non-static collection of machines; in response to the information request, sending a request message to a first machine of a message propagation path formed by a plurality of machines currently coupled to the network, wherein the request message specifies the type of information to be collected, wherein the request message is propagated along the message propagation path from the first machine, through one or more intermediate machines of the message propagation path, to a second machine of the message propagation path, and wherein, during the propagation of the request message from the first machine to the second machine, the request message accumulates respective local result information available to each machine along the message propagation path before being forwarded to a next machine along the message propagation path; and receiving a report message from the second machine, wherein the report message is generated by the second machine based on at least the result information accumulated in the request message received by the second machine, wherein each of the first machine and the one or more intermediate machines has performed a statistical evaluation of the accumulated result information in the request message to determine whether to continue the propagation of the request message to another machine along the propagation path and to determine whether to report currently accumulated result information to the server. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification