Fast Streams and Substreams
AssigneeMicrosoft Corporation
InventorChristopher C. McConnell
Life of this patent
Estimating the term…
Abstract
Various embodiments provide data structures and algorithms for efficiently computing a time ordered stream that is the combination of a time ordered substream for individual persons of interest. In addition, various embodiments provide an approach for identifying how many changes of interest have happened to a particular stream since it was last viewed.
Claims20
One or more computer readable storage media embodying computer readable instructions that implement data structures comprising:
- persistent data structures and in memory data structures, the data structures being configured to represent streams and sub streams associated with social networking data,
- the persistent data structures comprising:
- a stream table configured to record history of a plurality of posts and be utilized to initialize one or more in memory data structures;
- a following table and cache configured to provide a mapping from a user to people that the user follows;
- and
- a notification position table and cache configured to contain a global position of a last element in a stream returned as a notification for a particular UserID;
- the in-memory data structures comprising:
- a stream vector that is configured to track stream elements;
- a substream start vector configured to be used to look up an index in the stream vector of a newest element in a substream;
- and
- state information associated with stream.
A method comprising:
- initializing a plurality of elements in a stream vector associated with social networking data;
- reading individual rows in a stream table while a write lock has been acquired;
- and
- responsive to said reading, adding elements to the stream vector, the write lock being configured to allow reading of an associated stream during initialization.
One or more computer-readable storage media embodying computer readable instructions that implement a method comprising:
- iterating over a stream of elements pertaining to a stream of social networking data;
- and
- using a memory barrier during iteration to enable the stream to be read while write operations are taking place.
Dependencies are inferred from the claim text.