Hierarchical space partitioning for scalable data dissemination in large-scale distributed interactive applications
First Claim
1. A method of dynamically partitioning a hierarchical space of objects representing a dynamic set of participants in a distributed interactive application for managing state updates of said objects, said method comprising:
- partitioning an application space at any point of time into communication cells according to a current state of said application space, the application space comprising an N-dimensional virtual attribute space containing a set of objects and its associated states, and each of the set of objects comprising a set of attributes and a set of methods for modifying the set of attributes, wherein N≧
3, wherein said application space is spanned by coordinates representing said attribute values, wherein said application space is partially replicated in each of a plurality of clients, each of which controls a limited number of static and dynamic objects in the application space;
grouping the plurality of clients into the communication cells;
indexing the communication cells based on the set of attributes of objects sharing a communication interest at that time;
constructing a hierarchical index by sequential insertion of the communication cells; and
disseminating state updates to subsets of clients according to their communication interests, wherein a state update is generated for each modification of the attributes.
1 Assignment
0 Petitions
Accused Products
Abstract
We present exemplary methods involving hierarchical indexing of an application space, and exemplary techniques for scalable management of shared application state update distribution. The application space is partially replicated at each individual client who controls a limited number of static and dynamic objects of the application space. State updates are generated for each modification of objects'"'"' dynamic attributes. Multiple dynamic objects may change state simultaneously, requiring dissemination of the state updates to non-overlapping groups of clients. A client'"'"'s communication interest is described using multiple dynamic attributes. The communication interest space is represented as an N-dimensional attribute space with coordinates spanning the set of dynamic object attributes contained in the communication interest space. We provide a method for partitioning the application space, creation of communication interest cells and hierarchical indexing of the communication interest space. In addition we provide methods for the creation and dynamic modification of the hierarchical index.
21 Citations
17 Claims
-
1. A method of dynamically partitioning a hierarchical space of objects representing a dynamic set of participants in a distributed interactive application for managing state updates of said objects, said method comprising:
-
partitioning an application space at any point of time into communication cells according to a current state of said application space, the application space comprising an N-dimensional virtual attribute space containing a set of objects and its associated states, and each of the set of objects comprising a set of attributes and a set of methods for modifying the set of attributes, wherein N≧
3, wherein said application space is spanned by coordinates representing said attribute values, wherein said application space is partially replicated in each of a plurality of clients, each of which controls a limited number of static and dynamic objects in the application space;grouping the plurality of clients into the communication cells; indexing the communication cells based on the set of attributes of objects sharing a communication interest at that time; constructing a hierarchical index by sequential insertion of the communication cells; and disseminating state updates to subsets of clients according to their communication interests, wherein a state update is generated for each modification of the attributes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of dynamically partitioning an application space into a hierarchical structure for managing state updates of a dynamic set of objects, the application space comprising an N-dimensional virtual attribute space containing said set of objects and its associated states, wherein N≧
- 3, wherein said application space is spanned by coordinates representing attribute values of said objects, the objects representing participants in a distributed interactive application, the method comprising;
mapping the application space at any point of time into hierarchical hyperrectangular cells of variable sizes according to a current state of said application space; and exporting the application space into the hierarchical hyperrectangular cells; wherein said hierarchical structure comprises leaf nodes storing lists of objects whose communication interest are included in the associated partition cell and non-leaf nodes associated with domains of the application space; wherein the step of mapping satisfies an application-dependent constraint; and wherein each of the hierarchical hyperrectangular cells is associated with a domain defined by a numerical attribute and a non-numerical attribute of an object at that time. - View Dependent Claims (10, 11, 12, 13, 14, 15)
- 3, wherein said application space is spanned by coordinates representing attribute values of said objects, the objects representing participants in a distributed interactive application, the method comprising;
-
16. A computer-readable hardware medium having instructions stored thereon for execution by a computer processor to perform a method of dynamically partitioning a hierarchical space of objects representing a dynamic set of participants in a distributed interactive application for managing state updates of said objects, said method comprising:
-
partitioning an application space at any point of time into communication cells according to a current state of said application space, the application space comprising an N-dimensional virtual attribute space containing a set of objects and its associated states, and each of the set of objects comprising a set of attributes and a set of methods for modifying the set of attributes, wherein N≧
3, wherein said application space is spanned by coordinates representing said attribute values, wherein said application space is partially replicated in each of a plurality of clients, each of which controls a limited number of static and dynamic objects in the application space;indexing the communication cells based on the set of attributes of the objects at that time; constructing a hierarchical index by sequential insertion of the communication cells; and dynamically modifying the hierarchical index, including locating a cell identification in the communication cells corresponding to an attribute in the set of attributes included in a state update message sent by an object identified by a object identification; searching for the object identification in a current subscription list of the cell identification; if the object identification is not found in the step of searching, then (a) inserting the object identified by the object identification into the current subscription list of the cell identification, and (b) searching for the object identification in the hierarchical index, and, if the object identification is found in a previous subscription list, removing the object identification from the previous subscription list; and sending the state update message to all objects identified in the subscription list of the cell identification.
-
-
17. A computer-readable hardware medium having instructions stored thereon for execution by a computer processor to perform a method of dynamically partitioning an application space into a hierarchical structure for managing state updates of a dynamic set of objects, the application space comprising an N-dimensional virtual attribute space containing said set of objects and its associated states, wherein N≧
- 3, wherein said application space is spanned by coordinates representing attribute values of said objects, the objects representing participants in a distributed interactive application, the method comprising;
mapping the application space at any point of time into hierarchical hyperrectangular cells of variable sizes according to a current state of said application space; and exporting the application space into the hierarchical hyperrectangular cells; wherein said hierarchical structure comprises leaf nodes storing lists of objects whose communication interest are included in the associated partition cell and non-leaf nodes associated with domains of the application space; wherein the step of mapping satisfies an application-dependent constraint; and wherein each of the hierarchical hyperrectangular cells is associated with a domain defined by a numerical attribute and a non-numerical attribute of an object at that time.
- 3, wherein said application space is spanned by coordinates representing attribute values of said objects, the objects representing participants in a distributed interactive application, the method comprising;
Specification