Favourites

Search

Blobs

Short for Binary Large Object, a collection of binary data stored as a single entity in a database management system. BLOBs are used primarily to hold multimedia objects such as images, videos, and sound, though they can also be used to store programs or even fragments of code.

Are blobs stored internally to the table always loaded into memory?

Like everything else, the blob engine uses the buffer manager to access the table, blobs are stored in "segments" (variable sized parts of blocks allocated through the "heap engine"), these segments are organized in a b-tree with actual blob data stored in the leaf nodes of the tree. If you turn off client layer blob caching each read/write call on a blob stream will be passed through to the blob engine and only the segments that make up the blob between offset and offset+size of the read/write operation (+ the internal nodes of the b-tree to get to them) will be accessed by the blob engine to perform the operation.

Now let's take a detailed look at how blob access works on a ServerEngine level, and later how this interacts with the dataset layer.