Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Storing blobs in database vs filesystem

Re: Storing blobs in database vs filesystem

From: Nuno Souto <dbvision_at_iinet.net.au>
Date: Sat, 30 Sep 2006 01:31:55 +1000
Message-ID: <451D3C6B.6020201@iinet.net.au>


Niall Litchfield wrote,on my timestamp of 29/09/2006 8:17 PM:

> <snip>
>
> What could be challenge in storing it on file system? Any major
> disadvantage that I should not consider it at all?
>
> Thanks
>
>
>
> Are the BLOB's transactional in anyway, especially are they subject to
> change? If so then consistent recovery requirements might be overly
> complicated.

In our case, they were indeed transactional: the BLOB stored a complex string containing search terms and derived URLs, potentially in a number of different character sets. These were transformed and massaged by the application according to string algorithms for search engine optimisation of advertising campaigns.

Average length around 6000 bytes. Which posed a serious space problem: the db block size was 8K and a blob segment uses a minimum of one block to store each instance of offline LOB.

In retrospect, the 8K block size was a bad choice for this. But we only found out much later what the average blob size was: system test failed to show any indication of this.

In the vicinity of 40GB X 3 of BLOB segments, total db size in the 1.5TB class, non-partitioned, 9ir2, RHEL3, across two servers - no RAC. Not a pretty sight...

> My personal preference for files is to store them on filesystems with a
> pointer to them in the DB (either a BFILE or else just a straight uri
> for them)

Agreed. The keyword here being: "files".

Other large app-specific strings might indeed need in-db storage, with some inline while others end up in the lob segment. Transactional issues being the major concern, IME.

What to me is critical at my current level of knowledge of use of these features is choosing the appropriate block size to store the LOB: too small and there may be excessive random IO rate, too large and a lot of disk space may be wasted. Definitely ground for more research.

-- 
Cheers
Nuno Souto
in sunny Sydney, Australia
dbvision_at_iinet.net.au
--
http://www.freelists.org/webpage/oracle-l
Received on Fri Sep 29 2006 - 10:31:55 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US