Database Cursor Metadata Binding via Proxy Object

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face inefficiencies due to metadata duplication and bottlenecks when changing metadata characteristics, leading to cursor invalidation and recompilation requirements.

Innovation Solution

Implementing a proxy object that allows cursors to bind to the latest version of metadata at execution time, eliminating the need for recompilation and enabling concurrent execution without invalidating existing cursors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cursors store private copies of metadata inside themselves, then each cursor has independent access to metadata, but memory resources are wasted due to duplication

Engineering Contradiction:
Improvecursor metadata access independenceVSAvoidmemory resource consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the metadata storage from multiple cursors into a single shared external metadata structure. Instead of each cursor having its own private copy, all cursors reference the same external metadata, eliminating duplication while maintaining access capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces an intermediary mechanism (external metadata structure with version control) that mediates between cursors and the actual metadata. This intermediary allows cursors to access metadata without storing it privately, using version identifiers to ensure consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If cursors are placed on hold when metadata changes, then metadata consistency is maintained, but a bottleneck effect reduces system efficiency

Engineering Contradiction:
Improvemetadata consistencyVSAvoiddatabase system efficiency
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent makes the cursor-metadata binding dynamic by introducing version identifiers. Cursors are bound to specific metadata versions, allowing metadata to change while cursors continue executing with their bound version. This dynamic versioning eliminates the need to hold cursors during metadata changes.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent segments the cursor execution process by binding each cursor to a specific metadata version. This segmentation allows different cursors to operate with different metadata versions simultaneously, enabling parallel execution without bottlenecks while maintaining consistency within each cursor's context.

Inventive Principle:
Principle #1Segmentation

3Productivity

If versioned metadata is implemented, then cursors can run concurrently using the same metadata, but any metadata change invalidates cursors requiring recompilation

Engineering Contradiction:
Improvecursor concurrent executionVSAvoidcursor recompilation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary binding of cursors to metadata versions at cursor creation time. By pre-establishing the cursor-metadata version relationship, the system prepares for future metadata changes without affecting existing cursors, eliminating the need for recompilation when metadata evolves.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter binding approach from direct reference to versioned reference. Instead of cursors directly referencing metadata that may change, they reference metadata with specific version parameters, allowing metadata to evolve without invalidating existing cursors that maintain their original version bindings.

Inventive Principle:
Principle #35Parameter changes

4Quantity of substance

If shared metadata is stored external to cursors, then memory resources are saved, but complications arise when one cursor changes metadata while another uses it

Engineering Contradiction:
Improvememory resource efficiencyVSAvoidcursor metadata access safety
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent introduces dynamic version control to the shared external metadata structure. Each metadata change creates a new version, and cursors are bound to specific versions. This dynamic versioning system maintains safety by ensuring cursors always reference a stable, bound version while allowing the external metadata to evolve.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a logical copy mechanism through versioning. When metadata changes, a new version is created rather than modifying the existing one in place. Cursors continue referencing their bound version, effectively copying the metadata state at binding time, while new cursors can bind to updated versions.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8140493B2Changing metadata without invalidating cursors
Publication Date: 2012.03.20 ORACLE INT CORP
  • US8140493B2 patent drawing
  • US8140493B2 patent drawing
  • US8140493B2 patent drawing

AI summary

A method and apparatus for changing versioned metadata without invalidating cursors is provided. Cursors may be linked to the appropriate version of metadata at execution time as opposed to compilation time, meaning that they do not require recompilation to link to a new version of metadata. A database system maintains compiled code implementing a plan with respect to data items in a data storage space. The compiled code may have been generated in response to receiving a request to perform an operation that may be implemented using the plan. A version of metadata is also maintained. The metadata describes characteristics of the data storage space implicated by the plan. The compiled code is executed. The step of execution comprises binding the compiled code to the version of metadata. A proxy object referenced in the compiled code may facilitate the binding of the compiled code to the appropriate version of metadata.