Compiler-Generated Database Access Transaction Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing compiler technologies require significant programmer effort and multiple code bases to manage different data access methodologies, making it cumbersome to switch between various data storage methodologies, and lack transparency in database access operations, leading to inefficiencies and increased maintenance costs.

Innovation Solution

A compiler that automatically determines the appropriate database access transaction operations by processing source code instructions and generating object code that maps memory locations to the correct database access operations, using single code logic within an API to handle different database access characteristics, allowing seamless transitions between database types without requiring code modifications or recompilation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple code bases are used to manage different data access methodologies, then database access operations can be performed with appropriate transaction operations, but device complexity and maintenance costs increase

Engineering Contradiction:
Improvedatabase access operation appropriatenessVSAvoidcode base management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal data access interface that can work with multiple database types (relational, non-relational, in-memory, persistent) through a single code base. The compiler generates appropriate database-specific operations based on runtime environment detection, eliminating the need for separate code bases for different database methodologies while maintaining reliability of access operations.

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

Solution Approach 2:

The patent introduces a compiler as an intermediary between the standardized data access instructions and the actual database operations. The compiler detects the runtime environment and translates generic data access instructions into database-specific operations, acting as a mediator that resolves the complexity of managing multiple code bases while ensuring appropriate transaction operations for each database type.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If programmer effort is increased to manage different data access methodologies, then appropriate transaction operations can be implemented, but ease of operation decreases

Engineering Contradiction:
Improvetransaction operation correctnessVSAvoidprogrammer effort
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs automatic environment detection and operation selection without requiring programmer intervention. The compiler automatically detects the runtime database environment and generates appropriate database access operations, making the system self-serve the need for methodology-specific code while maintaining transaction operation correctness.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The compiler performs preliminary analysis of the runtime environment during the compilation phase and prepares appropriate database access operations in advance. This preliminary action ensures that the correct transaction operations are generated before runtime, eliminating the need for programmers to manually configure different access methodologies while ensuring correctness.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If code modifications are made to switch between database types, then appropriate access operations can be used, but productivity decreases

Engineering Contradiction:
Improvedatabase access appropriatenessVSAvoidmigration efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic database access where the same code base can adapt to different database types at runtime. The compiler generates code that detects the actual database environment and automatically adjusts the access operations accordingly, enabling seamless migration between database types without requiring code modifications and maintaining high productivity.

Inventive Principle:
Principle #15Dynamics

4Device complexity

If transparency in database access operations is reduced, then implementation complexity decreases, but measurement precision of access operations worsens

Engineering Contradiction:
Improveaccess operation implementationVSAvoidaccess operation transparency
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent implements a feedback mechanism where the compiler detects the runtime database environment and uses this information to generate appropriate access operations. This feedback loop maintains transparency by ensuring that the generated code accurately reflects the actual database access operations being performed, while the compiler handles the implementation complexity automatically.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11442708B2Compiler-generated alternate memory-mapped data access operations
Publication Date: 2022.09.13 CISCO TECHNOLOGY INC
  • US11442708B2 patent drawing
  • US11442708B2 patent drawing
  • US11442708B2 patent drawing

AI summary

Techniques for compiling source code include generating object code by processing source code corresponding to a portion of a software program. The source code includes an instruction, native to a program language, for a memory location access. Based at least in part on processing the source code, the compiler generates second object code that, when executed by one or more processors, configures the one or more processors to determine to implement the memory location access using first database access transaction operations or to implement the memory location access using second database access transaction operations. The compiler may generate third object code that configures the one or more processors to implement the memory location access using the first database access transaction operations or to implement the memory location access using the second database access transaction operations, based at least in part based on the determining.