Blob manipulation in an integrated structured storage system
First Claim
1. One or more tangible computer storage media having computer-executable instructions embodied thereon for performing a method for retrieving data of a Binary Large Object (Blob) in a structured storage system, the method comprising:
- receiving a request for a Blob from an application;
prior to searching a persistent file table of the structured storage system for a Blob pointer associated with the Blob, identifying within an in-memory hash index (“
hash index”
) a Blob pointer associated with the Blob, the hash index is a compressed hash index of the file table, wherein the structured storage system comprises a sequence number allocator, wherein the sequence number allocator generates sequence numbers that are assigned to structured storage system; and
further wherein the sequence number allocator maintains an indication of a last acknowledged sequence, which is the highest sequence number completed, further wherein, during replay of a Blob log stream, transaction with a sequence number less than the last acknowledged sequence are allowed to replay from the Blob log stream;
identifying, with a processor, data associated with the Blob, wherein the data is identified, in part, by the Blob pointer; and
communicating the data to the application.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention relate to systems, methods and computer storage media for facilitating the structured storage of binary large objects (Blobs) to be accessed by an application program being executed by a computing device. Generally, the manipulation of Blobs in a structured storage system includes receiving a request for a Blob, which may be located by way of a Blob pointer. The Blob pointer allows for the data, such as properties, of the Blob to be identified and located. Expired properties are garbage collected as a manipulation of the Blob data within a structured storage system. In an embodiment, the Blob is identified by a key that is utilized within a primary structured index to located the requested Blob. In another embodiment, the requested Blob is located utilizing a secondary hash index. In an additional embodiment, the Blob is locate utilizing a file table.
-
Citations
13 Claims
-
1. One or more tangible computer storage media having computer-executable instructions embodied thereon for performing a method for retrieving data of a Binary Large Object (Blob) in a structured storage system, the method comprising:
-
receiving a request for a Blob from an application; prior to searching a persistent file table of the structured storage system for a Blob pointer associated with the Blob, identifying within an in-memory hash index (“
hash index”
) a Blob pointer associated with the Blob, the hash index is a compressed hash index of the file table, wherein the structured storage system comprises a sequence number allocator, wherein the sequence number allocator generates sequence numbers that are assigned to structured storage system; and
further wherein the sequence number allocator maintains an indication of a last acknowledged sequence, which is the highest sequence number completed, further wherein, during replay of a Blob log stream, transaction with a sequence number less than the last acknowledged sequence are allowed to replay from the Blob log stream;identifying, with a processor, data associated with the Blob, wherein the data is identified, in part, by the Blob pointer; and communicating the data to the application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A structured storage system having a processor and memory that facilitates the seamless integration of one or more Binary Large Objects (Blobs), the structured storage system comprising:
-
a processor; computer readable media; a primary structured index embodied on the computer readable media, the primary structured index indexes one or more Blobs in a structured storage system, the primary structured storage index has at least a memory table and a row store, wherein the row store includes at least an update log stream and a file checkpoint stream, wherein the structured storage system comprises a sequence number allocator, wherein the sequence number allocator generates sequence numbers that are assigned to structured storage system; and
further wherein the sequence number allocator maintains an indication of a last acknowledged sequence, which is the highest sequence number completed, further wherein, during replay of a Blob log stream, transaction with a sequence number less than the last acknowledged sequence are allowed to replay from the Blob log stream; anda secondary hash index embodied on the computer readable media, the secondary hash index is a compressed hash index of the primary structured index, wherein the secondary hash index facilitates in-memory lookup of one or more Blobs indexed in the primary structured index prior to searching the primary structured index for the one or more Blobs. - View Dependent Claims (10, 11, 12, 13)
-
Specification