Vector Database Versioning for Seamless Model Evolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing vector processing workloads face challenges in providing fast response times and efficient management of vector databases, especially in handling high volumes of vectors generated by machine-learned models, which require specialized indexing and real-time updates, while existing solutions are often CPU-intensive and lack flexibility in handling different vector dimensions and formats.

Innovation Solution

A vector database management system (VDBMS) with a new VECTOR datatype that supports flexible dimension counts and formats, allows versioning of vectors within a single object, and includes optimized indexing and retrieval mechanisms to manage multiple vector versions efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If vectors are versioned to support model evolution, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improvemodel evolution supportVSAvoidversioning mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements versioning by nesting version metadata within the vector object structure itself. Each vector object contains a version number field that is embedded within the object, allowing multiple versions to be stored in a hierarchical manner without requiring separate versioning tables or complex external management mechanisms.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The vector object structure is designed to be universal and multi-functional, simultaneously storing vector data, version information, and metadata in a single integrated structure. This allows the same object type to handle both the vector itself and its versioning requirements, eliminating the need for separate specialized structures.

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

2Quantity of substance

If multiple vector versions are stored in a single object, then storage efficiency is improved, but retrieval complexity increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoidversion retrieval complexity
Core Design Contradiction:
Quantity of substanceVSDifficulty of detecting and measuring

Solution Approach 1:

The patent segments version retrieval by introducing a dedicated version number field within the vector object that can be independently queried. This allows the system to efficiently retrieve specific versions by filtering on the version number field rather than searching through all vector data, simplifying the retrieval process despite storing multiple versions in a single object.

Inventive Principle:
Principle #1Segmentation

3Productivity

If real-time vector updates are supported, then productivity is improved, but loss of time increases

Engineering Contradiction:
Improvereal-time update capabilityVSAvoidupdate response time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic versioning where vector objects can be updated in real-time by modifying the version number field and associated data. The system supports concurrent reads and writes by managing version numbers dynamically, allowing updates to propagate immediately without requiring complex transaction management or locking mechanisms that would cause significant delays.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20250284676A1Versioning of vectors in a database system
Publication Date: 2025.09.11 ORACLE INT CORP
  • US20250284676A1 patent drawing
  • US20250284676A1 patent drawing
  • US20250284676A1 patent drawing

AI summary

Techniques for creating and maintaining versions of vectors in a database statement are provided. In one technique, a first version of a vector is stored in a vector object. A second version, of the vector, that is different than the first version and that is not stored in the vector object is identified. In response to receiving an instruction to store the second version in the vector object, the vector object is identified, the vector object is updated to include the second version in addition to the first version, and a value that indicates a location, within the vector object, of the first version or of the second version is inserted into a next version reference field of the vector object.