Canonical Byte Stream Translation for Non-Relational Index Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed databases face inefficiencies in data retrieval operations due to the complexity of comparing index data, particularly in non-relational databases that store data without a schema, where index data often includes references to other documents and arrays, complicating the search process and impacting performance.

Innovation Solution

A system and method that translate index data into a canonical byte stream format for efficient byte-by-byte comparison, using a translation component to map data types and encode data elements, allowing for in-memory comparison and improving data retrieval efficiency by reducing the need for complex comparison logic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If index data is stored in non-relational format with references and arrays, then data flexibility and schema-less storage are improved, but data comparison complexity and retrieval efficiency deteriorate

Engineering Contradiction:
Improvedata flexibilityVSAvoiddata retrieval efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The index data is segmented into two distinct representations: the original non-relational format for storage and a translated canonical format for comparison operations. This segmentation allows each format to serve its optimal purpose without compromising the other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A translation component acts as an intermediary between the non-relational index data and the comparison operations. It translates the complex non-relational format into a simplified canonical format that enables efficient byte-by-byte comparison while preserving the original data structure for storage.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If complex comparison logic is used to handle non-relational index data, then data accuracy and completeness are improved, but processing time and computational resources worsen

Engineering Contradiction:
Improvedata accuracyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The translation of index data into canonical format is performed in advance during index creation or data insertion operations. This preliminary action ensures that when comparison operations are needed, the data is already in the optimal format, eliminating the need for complex real-time comparison logic.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The data format parameters are changed from non-relational structures with references and arrays to a canonical flat structure suitable for byte-by-byte comparison. This parameter change transforms the data into a form that enables simple, fast comparison operations while maintaining data accuracy through the translation process.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If translation operations are performed frequently to convert index data, then comparison efficiency is improved, but translation overhead and operational costs worsen

Engineering Contradiction:
Improvecomparison efficiencyVSAvoidtranslation overhead
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The translation operations are performed in advance during index creation, data insertion, or update operations. Once translated, the canonical format is maintained in memory for extended periods, eliminating the need for frequent translation operations and reducing the overall translation overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The translated index data is maintained continuously in memory in the canonical format, allowing for uninterrupted efficient comparison operations. This continuous availability of translated data maximizes comparison efficiency while minimizing the frequency and overhead of translation operations.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10394822B2Systems and methods for data conversion and comparison
Publication Date: 2019.08.27 MONGODB INC
  • US10394822B2 patent drawing
  • US10394822B2 patent drawing
  • US10394822B2 patent drawing

AI summary

According to one embodiment, a translation component is configured to operate on document encoded data to translate the document encoded data into a canonical format comprising a plurality of canonical types that fold together into a byte stream. The translation component is configured to accept any storage format of data (e.g., column store, row store, LSM tree, etc. and/or data from any storage engine, WIREDTIGER, MMAP, AR tree, Radix tree, etc.) and translate that data into a byte stream to enable efficient comparison. When executing searches and using the translated data to provide comparisons there is necessarily a trade-off based on the cost of translating the data and how much the translated data can be leveraged to increase comparison efficiency.