Parallel Change Event Processing in Multi-Tenant Database Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional database management systems face performance issues when tracking and disseminating database changes, as they often require serial processing of large volumes of change events, which can delay analysis and impact system performance.

Innovation Solution

The implementation of parallel processing technology allows a server to access and store change events from multiple logs in a persistent data store separate from the database, processing them out of order to create an ordered set of events, thereby reducing the load on the database management system and enabling efficient change tracking and dissemination.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If serial processing of change events is used, then system simplicity is maintained, but processing speed and productivity deteriorate

Engineering Contradiction:
Improvechange event processing speedVSAvoidprocessing system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the single change event processing stream into multiple parallel streams, each handling a portion of the change events. Multiple processing threads or processes simultaneously handle different segments of the log data, transforming a sequential operation into parallel operations that increase throughput without proportionally increasing system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces parallelism as a new dimension to the processing architecture by utilizing multiple CPU cores or processing threads simultaneously. This dimensional expansion from single-threaded to multi-threaded processing enables the system to handle larger volumes of change events without linearly increasing processing time.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If change tracking is performed within the database management system, then integration is simple, but system performance and scalability worsen

Engineering Contradiction:
Improvedatabase operation performanceVSAvoidchange tracking architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the change event processing functionality from the core database management system and places it in a separate, dedicated processing component. This externalization allows the database to focus on its primary functions while the extracted change tracking module handles event processing independently, preventing performance degradation of the core database operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary component that sits between the database and the change tracking processing. This intermediary captures change events from the database and forwards them to parallel processing threads, acting as a buffer that decouples the database operations from the intensive processing requirements of change event analysis.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If all change events are processed in order, then data consistency is maintained, but processing time and delay increase

Engineering Contradiction:
Improvechange event consistencyVSAvoidchange event processing delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by pre-processing and buffering change events before final ordering and delivery. Change events are initially captured and stored in a buffer structure that allows for parallel processing while maintaining the ability to restore chronological order if needed, enabling time-sensitive operations to proceed without waiting for complete sequential processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a dynamic processing approach where the strict ordering requirement is applied selectively based on the specific needs of different operations. For operations that require consistency, events are ordered; for operations that can tolerate out-of-order processing, events are handled immediately, allowing the system to adapt its processing strictness to the operational context.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11669510B2Parallel processing of disjoint change streams into a single stream
Publication Date: 2023.06.06 SALESFORCE INC
  • US11669510B2 patent drawing
  • US11669510B2 patent drawing
  • US11669510B2 patent drawing

AI summary

Technology for tracking changes to a database and providing the changes to a subscribing computing device. In an illustrative implementation, a method may involve subscribing a computing device to changes of a portion of a multi-tenant database and accessing a plurality of change events stored in a log of the multi-tenant database in parallel. The method may further involve storing the plurality of change events in a persistent data store separate from the multi-tenant database and processing the plurality of change events to create an ordered set of change events. The ordered set of change events may then be provided to the computing device that subscribed to the changes.