BLOB Storage in Embedded Systems via Flat File Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Relational databases are not optimized for handling Binary Large Objects (BLOBs), leading to inefficient storage and retrieval in embedded systems, which waste space and require multiple seek operations, particularly in systems with high performance and size limitations.

Innovation Solution

A database system that uses a virtual table to store BLOBs in a flat file, with the data needed to access them stored in a relational database, allowing for single seek and read operations, combining the benefits of SQL data access with the efficiency of flat files.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If BLOBs are stored in a relational database, then SQL query capabilities are maintained, but storage space is wasted and multiple seek operations are required

Engineering Contradiction:
ImproveSQL query capabilityVSAvoidBLOB retrieval efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system segments BLOB data from relational database storage by storing actual BLOB content in a flat file while keeping only metadata (starting point and length) in the relational database. This separation allows SQL queries to efficiently access metadata without the overhead of managing large binary data, resolving the contradiction between SQL capability and retrieval efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention extracts BLOB data from the relational database structure and stores it externally in a flat file format. The relational database retains only the essential access information (starting point and length), enabling faster retrieval operations while preserving SQL query functionality for metadata access.

Inventive Principle:
Principle #2Taking out (Extraction)

2Ease of operation

If BLOBs are stored in a relational database, then data access is simplified, but storage space is wasted

Engineering Contradiction:
ImproveData access simplicityVSAvoidStorage space utilization
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

By segmenting BLOB storage into a dedicated flat file structure, the system eliminates the storage overhead inherent in relational database BLOB management. The flat file format provides dense, efficient storage while the relational database maintains simplified access through metadata queries.

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If BLOBs are stored in a relational database, then convenient query language is available, but multiple seek operations are required

Engineering Contradiction:
ImproveQuery convenienceVSAvoidRetrieval time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The segmentation of BLOB metadata from actual BLOB data enables SQL queries to quickly locate BLOBs in the flat file using stored starting points, eliminating multiple seek operations. The relational database handles only metadata queries while the flat file provides direct BLOB access.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-storing the starting point and length of each BLOB in the relational database metadata. This allows queries to directly calculate the single seek position needed for BLOB retrieval, eliminating the need for multiple sequential seek operations and reducing retrieval time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8756261B2Method and system for handling binary large objects
Publication Date: 2014.06.17 HERE GLOBAL BV
  • US8756261B2 patent drawing
  • US8756261B2 patent drawing
  • US8756261B2 patent drawing

AI summary

A method and system for efficiently storing, retrieving, and updating binary large objects (BLOBs) in embedded systems is disclosed. The metadata of the BLOBs is stored in relational tables, while the BLOBs are stored in a flat file. Querying the metadata of the BLOBs (i.e. the starting points of the BLOBs and their length) is performed based on SQL. The corresponding BLOBs are then accessed using file operation commands. To further simplify the querying and storage of BLOBs, virtual tables are created. By using these virtual tables, a user can access a BLOB as if it was stored in a physical table.