User-Specific Event Threading via Doubly Linked List

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cloud platform systems lack efficient methods for maintaining context-specific threaded views of events, such as emails, across all participants, leading to static and inaccurate thread views that do not dynamically update with participant changes, and incur significant computing overhead.

Innovation Solution

The cloud platform employs an event threading component that maintains threads of messages for all participants using a doubly linked list structure with 'has next' and 'has previous' fields, allowing for efficient retrieval of context-specific threads and participant-based querying, and updates these fields using back-filling techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a cloud platform uses a shared network of remote servers to store and process data for multiple users, then resource utilization and scalability are improved, but the complexity of managing user-specific context and maintaining accurate threaded views of events increases significantly

Engineering Contradiction:
Improveresource utilizationVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the global event stream into user-specific threads by introducing thread identifiers and filtering mechanisms. Each user receives a customized view of events relevant to their context, separating the management of global data from individual user experiences. This segmentation allows the system to handle multiple user contexts independently, reducing the complexity of maintaining accurate threaded views for each user while leveraging shared infrastructure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer (the event filtering and threading system) between the shared network servers and individual users. This intermediary processes the global event stream, applies user-specific filters, and generates personalized threaded views. By placing this intermediary, the system maintains resource efficiency through shared infrastructure while delivering customized user experiences, effectively managing the complexity of user-specific context.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If the system maintains static thread views of emails and events, then implementation simplicity is improved, but the accuracy and relevance of thread views deteriorate when participants are added or removed

Engineering Contradiction:
Improveimplementation simplicityVSAvoidthread view accuracy
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent implements dynamic thread views that automatically update when participants are added or removed from events. The system uses participant lists, event filters, and threading logic that responds to changes in real-time. When a participant joins or leaves an event, the system dynamically adjusts which events appear in each user's thread and how they are organized. This dynamic approach maintains high thread view accuracy without requiring complete static pre-computation, balancing implementation feasibility with reliability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent incorporates feedback mechanisms where the system continuously monitors participant changes and event updates, then uses this information to adjust thread views. When participant lists change, the system feeds this information back into the threading logic, which re-evaluates and reorganizes event threads accordingly. This feedback loop ensures thread views remain accurate and relevant without requiring manual intervention, achieving reliable dynamic updates with manageable complexity.

Inventive Principle:
Principle #23Feedback

3Loss of information

If the system provides comprehensive threaded views for all participants across all events, then completeness of information is improved, but the computing overhead and processing time increase significantly

Engineering Contradiction:
Improveinformation completenessVSAvoidcomputing overhead
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The patent applies local quality by providing different levels of information completeness to different users based on their specific context and needs. Rather than giving every user identical comprehensive views of all events, the system tailors thread views to show only events and participants relevant to each user's role and interests. This selective information delivery maintains completeness for each user's specific context while significantly reducing overall computing overhead by avoiding redundant processing of irrelevant events for each user.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements partial action by computing and delivering only the necessary subset of event information for each user rather than processing all events comprehensively for all users. The system uses event filters, participant lists, and user profiles to determine which events require threading and which can be excluded. This partial processing approach maintains information completeness for relevant events while avoiding the excessive computing overhead of processing and delivering complete event data to all users, achieving efficiency without sacrificing necessary information quality.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11861399B2User specific event threading
Publication Date: 2024.01.02 SALESFORCE INC
  • US11861399B2 patent drawing
  • US11861399B2 patent drawing
  • US11861399B2 patent drawing

AI summary

The techniques may include maintaining a thread of events for a plurality of users, where each element of the thread corresponds to an event/activity and includes at least a next field that includes a first subset of the plurality of users and a previous field that includes a second subset of the plurality of users. These techniques may allow new events to be quickly added and prior elements may be updated to reflect the addition. Further, the thread elements may allow the thread to be quickly traversed to identify queried information such that the information may be displayed to a user.