Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 2 of 2 total
Thread BLOB Storage
Mon, Dec 17 2012 10:43 PMPermanent Link

Michael Riley

ZilchWorks

Avatar

How are BLOBs stored? I'm looking to store approximately 10-15 videos
that range in size from 15MB to 60MB within an ElevateDB database. I'd
like to know how they are stored.

Thanks,

--
Michael Riley
GySgt USMC Retired
http://capecodgunny.blogspot.com/
Tue, Dec 18 2012 5:43 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Michael

>How are BLOBs stored? I'm looking to store approximately 10-15 videos
>that range in size from 15MB to 60MB within an ElevateDB database. I'd
>like to know how they are stored.

<joke> As bytes on disk </joke>

BLOBS and CLOBS are stored in the .EDBBlb file that makes up a table along with the .EDBTbl and .EDBIdx files. A pointer to an offset where the specific item begins is stored in the .EDBTbl file. Within the .EDBBlb file each BLOB/CLOB is stored in one or more blocks. The size of these blocks can be set when the table is created/altered using the BLOB BLOCK SIZE clause. I'm guessing now because I don't know the exact format of the blocks but I'd expect it to be "from pointer" "data" "to pointer" and possibly some sort of hash to help with repair/integrity checking.

As you read the data ElevateDB will read each block in turn to get the entire BLOB, larger blocks mean less reads and hence better performance but come at a cost of increased slack (waste space). The same applies to writing.

Depending on the format of the videos you may want to turn compression on. There's a trade off between amount of data to be read and decompression time but you'll have to experiment to find out what's best for you.

You'll also certainly need to alter the default BLOB BLOCK SIZE. What to is a difficult question to answer. I'd suggest trying around 16K and see what happens. I don't know what the maximum you can set in ElevateDB is but to give an example (assuming its possible) if you set it to 60Mb then for the 15MB video you'd have 45Mb slack.

Roy Lambert [Team Elevate]
Image