Binary Object Storage Segmentation in Database Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for storing binary objects in database management systems are inefficient, as they incur significant overhead, especially when dealing with larger objects, and neither storing in the database nor in the file system presents an optimal solution due to varying overhead costs.

Innovation Solution

A method that determines the size of a binary object and stores it in the database using database communication protocols for small sizes, in the file system using database communication protocols for medium sizes, and in the file system using file system communication protocols for large sizes, with buffering used to determine size without premature writing and optimize storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If blobs are stored in the database, then data integrity and transaction support are improved, but overhead increases significantly with blob size

Engineering Contradiction:
Improvedata integrityVSAvoidoverhead
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent segments the storage system into two parts: small blobs (below threshold) are stored in the database using varbinary datatype, while large blobs (at or above threshold) are stored in the file system using Filestream datatype. This segmentation allows the system to leverage the reliability of database storage for small objects while avoiding the overhead penalty for large objects.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the storage parameter (location) based on the blob size parameter. By evaluating the size of each blob and dynamically selecting the appropriate storage location (database vs. file system), the system optimizes the trade-off between reliability and overhead for different data sizes.

Inventive Principle:
Principle #35Parameter changes

2Loss of energy

If blobs are stored in the file system, then overhead is stabilized at a constant level, but overhead becomes prohibitive for small sized blobs

Engineering Contradiction:
ImproveoverheadVSAvoidefficiency for small blobs
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent segments the storage system into two parts: small blobs (below threshold) are stored in the database using varbinary datatype, while large blobs (at or above threshold) are stored in the file system using Filestream datatype. This segmentation allows the system to leverage the reliability of database storage for small objects while avoiding the overhead penalty for large objects.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the storage parameter (location) based on the blob size parameter. By evaluating the size of each blob and dynamically selecting the appropriate storage location (database vs. file system), the system optimizes the trade-off between reliability and overhead for different data sizes.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If a single storage method is used for all blob sizes, then system complexity is reduced, but performance efficiency decreases

Engineering Contradiction:
Improvestorage management complexityVSAvoidstorage efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent creates a universal storage solution that handles both small and large blobs through a single interface. The SqlBlobProvider class provides a unified API that automatically selects the appropriate storage method based on blob size, making the system multi-functional without requiring application code to be aware of the underlying complexity.

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

Solution Approach 2:

The storage provider automatically determines the optimal storage location for each blob based on its size, without requiring manual intervention or complex configuration. The system self-manages the decision-making process by evaluating blob size against the threshold and selecting the appropriate storage method.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10223364B2Managing a binary object in a database system
Publication Date: 2019.03.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10223364B2 patent drawing
  • US10223364B2 patent drawing
  • US10223364B2 patent drawing

AI summary

A method for managing a binary object in a database system is provided. The method may include receiving a request to store the binary object and determining if a size of the binary object is above a first threshold. If the size is less than the first threshold, the method may include storing the binary object in a database of the database system using a database communication protocol. If the size is above the first threshold, the method may include determining if the size is above a second threshold. To this end, if the size is less than the second threshold, the method may include storing the binary object in a file system of the database system using the database communication protocol. Furthermore, if the size is above the second threshold, the method may include storing the binary object in the file system using a file system communication protocol.