- Paul McCullagh presents
- invented by Jim Starkey
- Basic Large OBject
- Binary Large OBject
- photos, films, mp4 files, pdfs, etc
- how MySQL handles BLOBs
- mysql client send buffer -> receive buffer on the server (max_allowed_packet)
- streaming a BLOB
- continuous data stream
- stream BLOB data directly in and out of the database
- store BLOBs of any size (>4GB) in the database
- create a scalable back-end that can handle any throughput and storage requirements. Wouldn't need to know in advance how big the database will get
- provide an open system that can be used by all engines
- provide extensions for …
« 10 Newer Entries
This is quite a milestone for me! At last it possible to actually
do some practical work with the BLOB streaming engine
For this release I have completed changes to the MySQL Connector/J 5.0.7, to allow BLOB data to be transparently stored and retrieved from the MyBS BLOB repository. The new version of the driver is called MySQL Connector/J SE (streaming enabled).
Uploading a BLOB is as simple as using setBinaryStream() or setBlob() on INSERT or UPDATE. By using getBinaryStream() or getBlob() after a SELECT you get direct access to the data stream coming from the repository. More information and some examples are provided in the documentation at: http://www.blobstreaming.org/documentation.
To try this out you need to install the latest versions of PBXT and MyBS. Both are available from: …
With some effort just before my holiday, I have managed to
complete the release of the next version of MyBS, the BLOB
streaming engine for MySQL.
This version includes all the basic functionality required to stream BLOB data in and out of MySQL tables.
The main features are:
Uploading of BLOB data directly into the database using
HTTP PUT or GET methods.
- Downloaded of BLOB data directly from the database using HTTP
- BLOB size may exceed 4GB - theoretical BLOB size limit of 256
- BLOBs are stored in a repository which manages references
from other storage engine tables.
- BLOBs are referenced by a URL.
- URLs referencing BLOBs in the repository have a unique access
code, for security.
- The theoretical maximum repository size is 4 Zettabytes (2^72 bytes) per …
After some consideration I have decided to move the BLOB
repository from PBXT to MyBS (§). This has the advantage that any
engine that does not have its own BLOB repository (or is
otherwise not suitable for storing large amounts of BLOB data)
can reference BLOBs in the MyBS BLOB repository.
(§) MyBS stands for "BLOB Streaming for MySQL". The BLOB Streaming engine is a new storage engine for MySQL which allows you to stream media data directly in and out of the database. More info at www.blobstreaming.org.
Lets look at an example of this. Assume my standard example table:
CREATE TABLE notes_tab (
n_id int PRIMARY KEY,
And assume we have a file called blob_eg.txt with the contents
"This is a BLOB Streaming upload test".
Firstly, I can upload a BLOB to the MyBS BLOB …
When seeing that the MySQL Proxy was released, I decided to try to experiment with it since I see strong potential with this tool, both for replication and for other uses (recall that I'm a replication guy, so this is my primary focus). I'm actually on vacation, but this will of course not stop me from tinkering with things (I know, I'm just a hopeless case in this aspect ;) ).
After reporting a minor bug, I managed to build and run it with some sample scripts. I'm using Kubuntu Feisty, and had some initial problems, but it was actually pretty straightforward. I'll repeat the steps anyway, in case anybody else have problems.
- Get the source from the repository svn co http://svn.mysql.com/svnpublic/mysql-proxy/ mysql-proxy
- Make sure you have all packages necessary. Several of the packages …
On the MySQL Conference & Expo 2007, I had the chance of meeting up with Paul (the author of PBXT) and Mikael. We briefly touched the topic of the BLOB Streaming Protocol that Paul is working on, which I find really neat. On the way back home, I traveled with Anders Karlsson (one of MySQL:s Sales Engineers), who is responsible for the BLOB Locator worklog and he described the concepts from his viewpoint.
Since I work with replication, these things got me thinking on what the impact is for replication and how it affects usability, efficiency, and scale-out. Being a RESTful guy, I started thinking about URIs both when …[Read more]
« 10 Newer Entries