Profile-Guided Optimization for Dynamic DBMS Hotspots

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional profile-guided optimization techniques are not suitable for Software as a Service (SaaS) environments, as they require static binaries that become suboptimal due to changing workloads in continuous software services.

Innovation Solution

The technique involves identifying execution hotspots in a database management system deployed in a cloud environment and applying profile-guided optimization selectively to these hotspots, reducing compilation overhead and enabling adaptive optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional profile-guided optimization is applied to the entire database management system, then runtime performance is improved, but compilation overhead increases significantly and the system cannot adapt to changing workloads

Engineering Contradiction:
Improveruntime performanceVSAvoidcompilation overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the database management system into two categories: hot functions (frequently executed functions identified through profiling) and non-hot functions. Profile-guided optimization is selectively applied only to hot functions rather than the entire system, reducing compilation overhead while maintaining runtime performance improvements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different optimization strategies to different parts of the system based on their execution characteristics. Hot functions receive profile-guided optimization with detailed profiling data, while non-hot functions use standard compilation, creating a localized optimization approach that balances performance and compilation cost.

Inventive Principle:
Principle #3Local quality

2Device complexity

If static binaries are used in SaaS environment, then compilation overhead is reduced, but the binaries become suboptimal due to changing workloads

Engineering Contradiction:
Improvecompilation overheadVSAvoidadaptability to changing workloads
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic optimization approach where the system periodically reprofiles hot functions and regenerates optimized code based on current workload characteristics. This allows the system to adapt to changing workloads in SaaS environments while maintaining low compilation overhead by focusing only on hot functions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs profile-guided optimization periodically rather than continuously, reprofiling hot functions at scheduled intervals or when workload changes are detected. This periodic optimization maintains adaptability to changing workloads while minimizing compilation overhead between optimization cycles.

Inventive Principle:
Principle #19Periodic action

3Productivity

If profile-guided optimization is applied to all functions, then runtime performance is maximized, but the time and resources required for profiling and compilation increase

Engineering Contradiction:
Improveruntime performanceVSAvoidprofiling and compilation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies profile-guided optimization partially, focusing only on hot functions that contribute most to runtime performance. By identifying and optimizing only the critical subset of functions rather than all functions, the system achieves significant runtime performance improvement with minimal profiling and compilation time investment.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12204881B2Dynamically applying profile-guided optimization to a DBMS
Publication Date: 2025.01.21 SALESFORCE INC
  • US12204881B2 patent drawing
  • US12204881B2 patent drawing
  • US12204881B2 patent drawing

AI summary

An application server may identify a set of functions for the source code associated with an uninterruptable software service. In some examples, the subset of the set of functions may include one or more functions having a computational expense greater than a threshold. The application server may create a compilation template to compile a subset of the set of functions to a shared library, and may perform an instrumentation to identify the subset of the set of functions based on the shared library. The application server may create an optimized version of the shared library based on performing the instrumentation. The application server may then change one or more portions of the source code to repoint to the optimized version of the shared library based on creating the optimized version of the shared library.