Re: a scheme for the future mysql-protocol, Re: [ANN] New PBXT/MyBS release enables JDBC-based BLOB streaming!

2007-10-22 Thread Paul McCullagh

Hi Chad,

Yes, I agree. This is a really good idea. I think that it makes a lot  
of sense to make streaming part of the standard MySQL protocol.


Your suggestion solves the problem that always comes with a  
transition to a new protocol.


On Oct 19, 2007, at 6:20 PM, Chad MILLER wrote:


On 19 Oct 2007, at 04:35, Paul McCullagh wrote:

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).


That's a beautiful hack, Paul.

Of course, you know what I'm going to say, but most of your readers  
weren't at MySQLCamp-US-East where I proposed it:  We can use this  
experience to change mysql-proxy, as a stepping stone to making the  
next mysql protocol (labled "p+1" below) that has (at least)  
streaming built-in:


 now:   client  ->   server

next:   client (p+1)  ->  proxy=>server + mybs
 &  :   client -> proxy->server (p+1)
 &  :   client (p+1)->   server (p+1)

so, older versions of client and server could speak to newer  
versions of server and client, perhaps with proxy as an intermediary.


Alas, this is a long-term dream.  I'm not proposing it for anyone  
soon, but it's fun to think about.


- chad

--
Chad Miller, Software Developer [EMAIL PROTECTED]
MySQL Inc., www.mysql.com
Orlando, Florida, USA13-20z,  UTC-0400
Office: +1 408 213 6740 sip:[EMAIL PROTECTED]





--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]



a scheme for the future mysql-protocol, Re: [ANN] New PBXT/MyBS release enables JDBC-based BLOB streaming!

2007-10-19 Thread Chad MILLER


On 19 Oct 2007, at 04:35, Paul McCullagh wrote:

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).


That's a beautiful hack, Paul.

Of course, you know what I'm going to say, but most of your readers  
weren't at MySQLCamp-US-East where I proposed it:  We can use this  
experience to change mysql-proxy, as a stepping stone to making the  
next mysql protocol (labled "p+1" below) that has (at least)  
streaming built-in:


 now:   client  ->   server

next:   client (p+1)  ->  proxy=>server + mybs
 &  :   client -> proxy->server (p+1)
 &  :   client (p+1)->   server (p+1)

so, older versions of client and server could speak to newer versions  
of server and client, perhaps with proxy as an intermediary.


Alas, this is a long-term dream.  I'm not proposing it for anyone  
soon, but it's fun to think about.


- chad

--
Chad Miller, Software Developer [EMAIL PROTECTED]
MySQL Inc., www.mysql.com
Orlando, Florida, USA13-20z,  UTC-0400
Office: +1 408 213 6740 sip:[EMAIL PROTECTED]




PGP.sig
Description: This is a digitally signed message part


[ANN] New PBXT/MyBS release enables JDBC-based BLOB streaming!

2007-10-19 Thread Paul McCullagh

Hi All,

I have just released PBXT 0.9.90 and MyBS version 0.5.03. PBXT is a  
transactional storage engine for MySQL (http://www.primebase.com/xt),  
and MyBS is a storage engine that enables streaming of BLOB data  
directly in and out of a MySQL database (http://www.blobstreaming.org) .


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. 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: http://www.blobstreaming.org/download.


Binary versions of the storage engines are also available for MySQL  
5.1.22 running on 32-bit Linux and x86 Mac OS X. The modified version  
of the JDBC source code is included in the MyBS source code  
distribution, but the driver can also be downloaded here: http:// 
www.blobstreaming.org/download/mysql-connector-java-5.0.7se-bin.jar.


I have included a small test program, TestJDBC.java, as part of the  
JDBC driver. So once you have installed the engines, you can test  
BLOB streaming as follows:


java -cp mysql-connector-java-5.0.7se-bin.jar TestJDBC

TestJDBC connects to a local MySQL server, creates a PBXT table and  
tests INSERT and SELECT of rows containing BLOBs. The program also  
serves as an example of how to do BLOB streaming with JDBC.


To get started quickly, the most important things to note are:

* Set EnableBlobStreaming=true in your JDBC connection URL.
* Streamable BLOBs can only be stored in LONGBLOB columns in PBXT  
tables.
* Use setBinaryStream(), setAsciiStream or setBlob() and specify the  
length to upload a BLOB.


As usual, any comments, questions or bug reports can be sent directly  
to me: paul-dot-mccullagh-at-primebase-dot-com. Make sure you put the  
word PBXT or MyBS in the e-mail title to make it through my spam  
filter! :)


Best regards,

Paul


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:http://lists.mysql.com/[EMAIL PROTECTED]