Netfrastructure had a large law firm that went paperless. All correspondence was generated by the application and stored in the database as a PDF blog. All incoming correspondence was scanned in the mail room and stored in the database as a blob. The amount of daily blob data was enormous, and commingling blob data with table and record data was infeasible.

The architecture I developed to address the problem was this:

1. DDL to declare blob repositories.  Each repository a name, a file
   name pattern, and a target size.
2. The blob DDL allowed specification of a named repository to hold
   instances of that blob.
3. Each repository managed an open ended set of volume (file). When a
   repository volume reached the the repository's declared target size,
   the current volume would closed and a new volume created using the
   declared file name pattern.
4. A repository volume used the same ODS as the primary database file
   but was logically independent.
5. Blob references were variable length with encoded repository name,
   volume, and id in volume

The driving factor for the complex blob reference was the database replication scheme that guaranteed that repository volumes would be interchangeable among database replicants so a lost, damaged, or offline volume could be copied from another system.

In practice, nothing was ever deleted from a blob repository other than a backed out transaction, but blob garbage collection applied to repository blobs as run of the mill blobs.

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://makebettercode.com/inteldaal-eval
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to