db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominique Pfister" <dominique.pfis...@gmail.com>
Subject Re: Derby Client Driver and LOBs
Date Wed, 06 Dec 2006 15:38:20 GMT
Hello Tomohito,

thank you very much for your reply! Jackrabbit, the JSR-170 reference
implementation, uses an embedded derby database to store its content,
by default. In order to cluster several repository nodes, derby is
started standalone and all cluster nodes, possibly running on
different machines, access the same database. Binary large objects are
stored there as well, in a table that is created as follows:

create table BINVAL (BINVAL_ID varchar(1024) not null, BINVAL_DATA
blob(100M) not null)

We then retrieve binary data by a SQL clause such as the following:

select BINVAL_DATA from BINVAL where BINVAL_ID = ?

I looked at the relevant parts of the derby client driver (version
10.1.3.1) and quickly coded a  solution for large objects exceeding
1MB, using temporary files that are deleted as soon as the blob is no
longer referenced. If there is interest, I could further refine my
solution and submit a patch.

Kind regards
Dominique

On 12/6/06, TomohitoNakayama <tomonaka@basil.ocn.ne.jp> wrote:
> Hello.
>
> I'm afraid that your case is not addressed yet ...
>
> Several improvement around memory usage for LOB was achieved / is under
> work.
> But I think memory usage in NetworkClient driver when receiving LOB from
> NetworkServer is not improved yet.
>
> If you don't mind, could you tell us your case in more detail ?
> I want to file it as our task for improvement.
>
> Best regards.
>
>
> Dominique Pfister wrote:
>
> > Hi,
> >
> > I'm a developer in the Apache Jackrabbit project and in the process of
> > making it clusterable we're facing some serious problem: we have all
> > nodes in the cluster share the repository data and are using derby as
> > database back end, running standalone. When retrieving large binary
> > data through the derby client driver, I get OutOfMemoryErrors. The
> > resource paper "Derby Network Client" says:
> >
> >  "The client driver fully materializes LOBS when the row is retrieved"
> >
> > which would of course explain those errors when the data gets too
> > large. Is this limitation being addressed? Or is there some other way
> > of retrieving binary data from a standalone derby database that
> > bypasses it?
> >
> > Thanks
> > Dominique
> >
> >
>
> --
> /*
>
>         Tomohito Nakayama
>         tomonaka@basil.ocn.ne.jp
>         tomohito@rose.zero.ad.jp
>         tmnk@apache.org
>
>         Naka
>         http://www5.ocn.ne.jp/~tomohito/TopPage.html
>
> */
>
>

Mime
View raw message