Lockless open collection data structure
First Claim
1. A computing system comprising:
- one or more processors;
a hardware storage device having stored thereon computer-executable instructions that are executable by the one or more processors to cause the computing system to use an open collection data structure to create a sequence of collection records, the computer-executable instructions including instructions to perform at least the following;
access an open collection data structure that is lockless and re-usable for creating a corresponding collection record for each of a plurality of collections of data items within a data stream of a plurality of different types of data items, each collection of data items comprising a plurality of data items that include one or more common attributes, each given collection record including a collection definition that defines the collection of data items to which the given collection record corresponds; and
evaluate the data stream that includes the plurality of different types of data items;
use the lockless data structure to create a sequence of collection records by performing the following for at least one of the sequence of collection records;
identify an expandable collection definition associated with an open collection for which a collection record is to be created, wherein the expandable collection definition is expandable to include data items of a particular data item type if the last data item of that particular data item type is encountered in the data stream;
represent the expandable collection definition within the open collection data structure;
represent a data stream address range associated with the open collection within the open collection data structure;
upon detecting an event, determine that the expandable collection definition is no longer expandable;
upon determining that the expandable collection definition for the collection is no longer expandable, create a collection record based on state within the open collection data structure; and
once the collection record for a collection has been created, make the open collection data structure available for a next collection record in the sequence of collection records.
1 Assignment
0 Petitions
Accused Products
Abstract
A lockless open collection data structure used to create a sequence of collection records. The sequence of collection records may be inserted into a data stream for purposes of assisting in subsequent processing of the data stream in a parallel manner, by collection. The open collection data structure is re-usable for multiple collections of data items within the data stream. The use of the open collection data structure may occur while a data stream that includes multiple different types of data items is being evaluated. The open collection data structure is used to track an expandable collection definition of a currently open collection. Upon detecting that the collection definition is no longer expandable, the collection record is created based on state within the open collection data structure. Once the collection record for a collection has been created, the open collection data structure becomes available for the next collection record.
-
Citations
19 Claims
-
1. A computing system comprising:
-
one or more processors; a hardware storage device having stored thereon computer-executable instructions that are executable by the one or more processors to cause the computing system to use an open collection data structure to create a sequence of collection records, the computer-executable instructions including instructions to perform at least the following; access an open collection data structure that is lockless and re-usable for creating a corresponding collection record for each of a plurality of collections of data items within a data stream of a plurality of different types of data items, each collection of data items comprising a plurality of data items that include one or more common attributes, each given collection record including a collection definition that defines the collection of data items to which the given collection record corresponds; and evaluate the data stream that includes the plurality of different types of data items; use the lockless data structure to create a sequence of collection records by performing the following for at least one of the sequence of collection records; identify an expandable collection definition associated with an open collection for which a collection record is to be created, wherein the expandable collection definition is expandable to include data items of a particular data item type if the last data item of that particular data item type is encountered in the data stream; represent the expandable collection definition within the open collection data structure; represent a data stream address range associated with the open collection within the open collection data structure; upon detecting an event, determine that the expandable collection definition is no longer expandable; upon determining that the expandable collection definition for the collection is no longer expandable, create a collection record based on state within the open collection data structure; and once the collection record for a collection has been created, make the open collection data structure available for a next collection record in the sequence of collection records. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method, implemented at a computing system that includes one or more processors, for using an open collection data structure to create a sequence of collection records, the method comprising:
-
accessing an open collection data structure that is lockless and re-usable for creating a corresponding collection record for each of a plurality of collections of data items within a data stream of a plurality of different types of data items, each collection of data items comprising a plurality of data items that include one or more common attributes, each given collection record including a collection definition that defines the collection of data items to which the given collection record corresponds; evaluating the data stream that includes the plurality of different types of data items; and using the lockless data structure to create a sequence of collection records by performing the following for at least one of the sequence of collection records; identifying an expandable collection definition associated with an open collection for which a collection record is to be created, wherein the expandable collection definition is expandable to include data items of a particular data item type if the last data item of that particular data item type is encountered in the data stream; representing the expandable collection definition within the open collection data structure; representing a data stream address range associated with the open collection within the open collection data structure; upon detecting an event, determining that the expandable collection definition is no longer expandable; upon determining that the expandable collection definition for the collection is no longer expandable, creating a collection record based on state within the open collection data structure; and once the collection record for a collection has been created, making the open collection data structure available for a next collection record in the sequence of collection records. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising one or more hardware storage devices having stored thereon computer-executable instructions that are executable by one or more processors of a computing system to cause the computing system to use an open collection data structure to create a sequence of collection records, the computer-executable instructions including instructions to perform at least the following:
-
access an open collection data structure that is lockless and re-usable for creating a corresponding collection record for each of a plurality of collections of data items within the data stream of a plurality of different types of data items, each collection of data items comprising a plurality of data items that include one or more common attributes, each given collection record including a collection definition that defines the collection of data items to which the given collection record corresponds; evaluate the data stream that includes the plurality of different types of data items; and use the lockless data structure to create a sequence of collection records by performing the following for at least one of the sequence of collection records; identify an expandable collection definition associated with an open collection for which a collection record is to be created, wherein the expandable collection definition is expandable to include data items of a particular data item type if the last data item of that particular data item type is encountered in the data stream; maintain the expandable collection definition within the open collection data structure; represent a data stream address range associated with the open collection within the open collection data structure; upon detecting an event, determine that the expandable collection definition is no longer expandable; upon determining that the expandable collection definition for the collection is no longer expandable, create a collection record based on state within the open collection data structure; and once the collection record for a collection has been created, make the open collection data structure available for a next collection record in the sequence of collection records. - View Dependent Claims (18, 19)
-
Specification