Thread Record Provider for Multi-Tenant Diagnostic Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant computing systems, pinpointing the cause of performance issues such as increased query latency is challenging due to limited diagnostic information provided by existing Java runtime APIs, which cannot filter or aggregate data by tenant, user, or feature, leading to disruptive troubleshooting processes.

Innovation Solution

A thread record provider is introduced to extend the intrinsic data with custom metadata, allowing filtering and aggregation of thread records based on criteria like tenant or user, using a separate API or component that injects arbitrary metadata into a data structure, enabling more detailed analytics and troubleshooting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If Java runtime API is used to capture call stack information, then basic thread diagnostic data is obtained, but the data cannot be filtered or aggregated by tenant, user, or feature leading to limited diagnostic value

Engineering Contradiction:
Improvediagnostic information completenessVSAvoiddata processing complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

A thread record provider component is introduced as an intermediary between the Java runtime API and the diagnostic analysis process. This component captures thread information from the runtime API and enriches it with custom metadata (tenant ID, user ID, feature flags) from application context, thereby preserving complete diagnostic information without requiring direct complex queries to the runtime API

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The diagnostic data is segmented into modular records, each containing a subset of thread information and associated metadata. This segmentation allows selective filtering and aggregation of specific data elements (e.g., filtering by tenant ID or user ID) without processing the entire dataset, reducing complexity while maintaining information completeness

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If all thread information is captured and analyzed, then comprehensive diagnostic data is obtained, but the complexity of pinpointing specific tenant or user issues increases

Engineering Contradiction:
Improveperformance issue identification precisionVSAvoiddata filtering complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Each thread record is enhanced with localized metadata tags (tenant ID, user ID, feature flags) that enable precise filtering and aggregation. This local quality enhancement allows diagnostic queries to target specific tenants or users by filtering on these metadata fields, thereby improving identification precision without requiring complex analysis of all thread data

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If custom metadata is injected into thread records, then filtering and aggregation capabilities are enabled, but the data structure complexity increases

Engineering Contradiction:
Improvedata filtering versatilityVSAvoiddata structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

A universal metadata schema is implemented that can accommodate multiple types of custom information (tenant ID, user ID, feature flags, custom attributes) in a standardized format. This universal structure enables versatile filtering and aggregation operations across different metadata types without requiring separate data structures for each metadata kind, thereby maintaining structural simplicity while enhancing adaptability

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10803080B2Thread record provider
Publication Date: 2020.10.13 SALESFORCE INC
  • US10803080B2 patent drawing
  • US10803080B2 patent drawing
  • US10803080B2 patent drawing

AI summary

In an example, a computing system may include a thread record provider. In some examples, the computing system may incrementally change a first data structure as threads are established and completed, wherein the first data structure comprises first information of currently active threads; incrementally change a second different data structure responsive to a portion of changes of the first data structure, wherein the second data structure correlates second information that is different than the first information to the currently active threads; and synchronously extract content from the first and second data structures for a selected thread at a selected instant and concatenate the extracted content to form a record for the selected thread.