Feature Requests item #872236, was opened at 2004-01-07 10:16
Message generated for change (Settings changed) made by mr-meltdown
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=482471&aid=872236&group_id=56967

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Priority: 5
Private: No
Submitted By: Martin Kersten (mlkersten)
Assigned to: Nobody/Anonymous (nobody)
>Summary: SQL: better BLOB protocol support

Initial Comment:
The Blob module has been developed 8 years ago as a
first attempt to exercise the MEL facilities. The way
it was implemented reflected the then to time approach
to manage all data within the confines of a DBMS. For
Blobs this meant effectively mimicking a file-service.

With the ubiquitious availability of HTTP services it
makes sense to drastically redesign the blob interface
along the following lines.

Assumption 1. A URL module is already available to
manage strings
satisfying the URL conventions.

Assumption 2. Blobs are  'ordinary data items' brought
under the control of the DBMS

Assumption 3. Blobs find their origin in the local file
system or in remote web-space.

The Blobs can now be managed by the DBMS as follows.
Next to the dbfarm directory for retaining the
persistent data, a directory is created in the space
managed by e.g. an Apache server. The location of which
is handed to the Blob module upon initialization. Let's
call it .../MonetDB/BlobStore

Blobs are inserted into the DBMS by providing an url
handle, e.g.
the following should work:

b:= new(int, blob);
b.insert(1,"http://www.cwi.nl/~mk/index.html";);
b.insert(2,"file:///tmp/x");

Upon transaction commit (or anytime earlier as needed)
the blob objects are obtained and assigned a location
in the BlobStore using an internally generated name.
The BlobStore could be organized as a cache, e.g.
multiple directories to spread the load.

The Blob interface maintains the mapping from the
original handle to the location in its own store.
Furthermore, a reference count should be maintained to
guarantee accessibility over multiple assigments.

The operations defined over an Blob items become:
getOrigin - returns the source handle
clrOrigin - forget the source handle
getHandle- return url to enable access

The mapping between handle and physical location can be
changed by the DBMS at will. Their is no guarantee that
the handle given to a user is likely to last forever.

This Blob mechanism can be readible extended to handle
images, video, audio, etc.. They merely require some
additional test on the content type and probably need
more space.

The expected implementation effort is considered 1-2
days, provided we can easily include the HTTP access
protocol software inside the Mserver to retrieve the
Blobs in the first place from the application environment.

----------------------------------------------------------------------

Comment By: Fabian (mr-meltdown)
Date: 2004-09-09 11:22

Message:
Logged In: YES 
user_id=963970

the Mapi protocol should handle BLOBs and TEXTs (which
could/should be very large) as special urls, which can be
retrieved by the mapi client and returned to the user as
blob.  This meets requirements made by for instance JDBC.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=482471&aid=872236&group_id=56967

------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
_______________________________________________
Monetdb-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-bugs

Reply via email to