Blob and File Storage

The majority of SQL databases have a mechanism for storing variable length column data attached to columns with specific data types (typically VarString or VarChar amongst others). The Lava database also has variable column data storage, which can be used to store up to several hundred megabytes of data in a single column.

Quite often, though, there is a requirement to store files or Blobs (binary large objects) in the database which do not strictly belong in a column of a data table - rather, they may be more consistently viewed as a "related" object to a particular row in a table. This is most pertinent where a particular file or Blob has valid relations with not only more than one row in a table, but perhaps even with rows in another table entirely.

To support this wider (and more generic) viewpoint of file data storage, the Lava Primary Server has a facility for storing files or Blobs independently of row data - a facility dedicated to the management of large data elements.

This completely independent storage facility allows files of arbitrary size and content to be stored in one of two ways :

Stored-mode File Storage and Retrieval

In this mode, files or Blobs may be stored as an only-revision (last copy stored is the only one kept) - a mode valid for either extremely large or non-text files (such as images). The file is stored on the server and may be retrieved at any time through a dedicated interface.

Delta-mode File Storage and Retrieval

The Lava Primary Server has an integrated high speed reverse-delta engine, capable of producing delta information for text or other largely consistent data objects of anything up to several megabytes.

When delta-mode is selected, storing a new version of a file automatically triggers generation of a reverse-delta for the file, allowing retrieval of not only the latest copy but of any revision of the file back to the very first copy stored. This mechanism is used by Blueprint, the software development environment for Lava SQL, to allow comprehensive revision control on all source code.