In-Memory Stream Vector for Distributed Social Network Data Merging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed social networks, efficiently computing a time-ordered stream that combines substreams for individual users and tracking changes since the last view is challenging due to data being distributed across multiple servers, making querying and updating operations complex.

Innovation Solution

The implementation of in-memory data structures and algorithms that allow for efficient querying and updating of time-ordered streams and substreams without locking, enabling the generation of globally sorted streams, intersection of queries, and tracking of notifications, using data structures like the Stream Vector and Substream Start Vector, and algorithms that maintain stream integrity across multiple readers and servers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is distributed across multiple servers, then scalability and system capacity are improved, but querying and stream generation operations become more complex and slower

Engineering Contradiction:
Improvestream generation speedVSAvoidquerying complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system divides the distributed data into substreams organized by user, with each substream maintained separately. The Stream Vector data structure segments stream data into manageable units that can be independently processed, allowing efficient merging without requiring complex coordination across all distributed servers for every operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces intermediary data structures (Stream Vector, Substream Start Vector, and Merge State) that act as mediators between the distributed servers and the final merged stream. These intermediaries buffer and organize data locally, reducing the complexity of direct server-to-server querying and enabling faster stream generation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If traditional distributed querying methods are used, then data consistency across servers is maintained, but operation speed and user experience responsiveness deteriorate

Engineering Contradiction:
Improveoperation speedVSAvoidstream integrity
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary organization of stream data into user-specific substreams and maintains Substream Start Vectors that pre-compute and store starting positions for each user's data. This preliminary structuring allows rapid access and merging operations without requiring complex real-time coordination, thus improving speed while maintaining integrity through pre-established data organization.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces traditional mechanical distributed locking and coordination mechanisms with in-memory data structures and algorithms. By using Stream Vectors and Merge States that can be efficiently manipulated in memory, the system achieves faster operations while maintaining stream integrity through algorithmic guarantees rather than mechanical locking protocols.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If in-memory data structures are used for fast access, then operation speed is improved, but memory consumption and system resource requirements increase

Engineering Contradiction:
Improvequery processing efficiencyVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The Stream Vector data structure segments stream data into fixed-size blocks or chunks, allowing the system to load and process only relevant portions into memory at any given time. This segmentation enables efficient query processing with controlled memory usage, as the system can work with discrete units rather than requiring entire streams in memory simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses Merge State to track only the necessary portion of stream data that needs to be merged at any given moment, rather than maintaining complete stream states for all users. This partial action approach processes only the relevant subset of data in memory, improving query efficiency while limiting memory consumption to what is strictly necessary for current operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9953045B2Fast streams and substreams
Publication Date: 2018.04.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9953045B2 patent drawing
  • US9953045B2 patent drawing
  • US9953045B2 patent drawing

AI summary

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.