Binary Object Storage Segmentation in Database Systems
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Device complexity
If a single storage method is used for all blob sizes, then system complexity is reduced, but performance efficiency decreases
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.
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.
Data Source
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.


