Database Change Record Stream Buffering for Multi-Tenant Query Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant databases, managing change event records across numerous tenants is inefficient due to the large volume of data and the complexity of filtering records for individual tenants, leading to delays and dissatisfaction.

Innovation Solution

A system that receives a stream of change event records, stores them in buffers, and tracks information using a separate data structure that includes the order of reception and the associated tenant, allowing for efficient querying and retrieval of records specific to each tenant.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If change event records are organized and maintained across all tenants in a multi-tenant database, then storage efficiency is improved, but query efficiency for individual tenants deteriorates

Engineering Contradiction:
Improvestorage efficiencyVSAvoidquery efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the change event record stream by creating separate buffered streams for each tenant. The stream manager divides the global change event records into tenant-specific portions using identifiers embedded in the records, allowing each tenant to access only their relevant records. This segmentation resolves the contradiction by maintaining efficient storage in a shared buffer while enabling fast tenant-specific queries without scanning all records.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If all change event records are maintained in a single stream, then system complexity is reduced, but filtering time for individual tenants increases

Engineering Contradiction:
Improvesystem complexityVSAvoidfiltering time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The system performs preliminary action by pre-filtering and organizing change event records into tenant-specific buffered streams as they are generated. The stream manager proactively identifies tenant identifiers in incoming records and routes them to the appropriate tenant-specific buffer before any query occurs. This preliminary organization eliminates the need for time-consuming filtering during query operations while maintaining a relatively simple single-stream ingestion architecture.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If change records are kept private for each tenant, then data security is improved, but system-wide change management complexity increases

Engineering Contradiction:
Improvedata securityVSAvoidchange management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary stream manager that sits between the global change event record generation and individual tenant access. This intermediary component handles the complexity of tenant-specific record routing, buffering, and retrieval, while presenting a simplified interface to both the database system and individual tenants. The stream manager acts as a mediator that ensures data security by isolating tenant records while managing system-wide change events through centralized coordination.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12222924B2Buffering techniques for a change record stream of a database
Publication Date: 2025.02.11 SALESFORCE INC
  • US12222924B2 patent drawing
  • US12222924B2 patent drawing
  • US12222924B2 patent drawing

AI summary

Techniques are disclosed relating to methods that include receiving, by a computer system in a multi-tenant database service, a stream of change event records for a database on a server. A given change event record may be indicative of a modification made to the database by one of a plurality of tenants. The methods may further include storing the received change event records in one or more buffers, and tracking, in a data structure separate from the one or more buffers. Information for ones of the stored change event records may include a corresponding order of reception and a particular tenant associated with a respective change event record. In response to receiving a query from a given tenant, the methods may include processing the query using the data structure to identify change event records associated with the given tenant.