cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Malcolm Edgar <malcolm.ed...@gmail.com>
Subject Re: NuoDB Cayenne Adaptor
Date Thu, 23 Aug 2012 07:41:47 GMT
Hi Andrus,

Its going pretty well so far. I have a smallish Cayenne web application
running on it with 30 odd tables. The NuoDB JDBC driver is a picky with
types, e.g. if you pass a numeric string value "6418" into a Cayenne query
as the PK, Cayenne will set this in the PreparedStatement as
setObject(index, value), however if the underlying database type is a
BIGINT the driver will complain internally about casting a java.lang.String
to java.lang.Long.  I can fix this with the Cayenne CharType
method setJdbcObject() by marshalling the value into a java.lang.Long and
performing PreparedStatement#setLong(). However I am not sure if this is
what I should be doing from a Cayenne perspective.

Other JDBC drivers I use (MySQL, Oracle, SQL Server)  don't complain doing
this data marshaling internally.

On the topic of Cayenne branches, I am currently working against is:

   - https://svn.apache.org/repos/asf/cayenne/main/branches/STABLE-3.0/<https://svn.apache.org/repos/asf/cayenne/main/branches/STABLE-3.0/f>
   - https://svn.apache.org/repos/asf/cayenne/main/trunk/

Is this the correct approach. The reason I am using Cayenne 3.0.x, is so I
can perform testing against our applications, which I think is a good way
of verifying this code.

I can't really comment about how they implement ACID, there is the issue of
latency and the speed of light!  I think their use of MVCC helps with this
type of problem, which then becomes an application problem.

The applications I develop don't have a lot of contention, my main concern
is about availability. I haven't figured out how to do automatic fail over
yet, beyond loosing a connection to a Transaction Engine (TE) and then
going back to a Broker to establish a new connection to a (TE).  My concern
is if you loose a TE and Broker, then I have to write the code to reconnect
to another Broker.

MongoDB do a good job with this in their Java drivers from what I
understand, if the primary DB is lost, and a secondary is elected to
primary the driver will automatically fail over to the new primary.

regards

On Thu, Aug 23, 2012 at 5:44 AM, Andrus Adamchik <andrus@objectstyle.org>wrote:

> Hi Malcolm,
>
> Certainly interested to see how this project goes.
>
> I watched the webinar and I am sure this thing can't be nowhere near ACID.
> But as long as it supports joins, has a JDBC driver, and can store more
> than a few gigabytes of data, it'll be good enough for many applications :)
>
> Good luck,
> Andrus
>
>
> On Aug 15, 2012, at 3:01 PM, Malcolm Edgar wrote:
> > Hi Guys,
> >
> > Thanks for the feedback.
> >
> > In terms of my interest, I have no relationship with NuoDB at all.
> >
> > The company I work for Avoka Technologies provide a forms hosting
> platform
> > for large government and corporates.  We use/love Cayenne and support
> > Oracle, SQL Server, MySQL databases.  Generally Oracle and SQL Server are
> > used for on-premise installations and we use MySQL for a cloud offering
> > (Amazon RDS).
> >
> > For us we have no performance problems with relational databases. By
> using
> > Cayenne caching intelligently we can handle very high loads.  However
> when
> > it comes to providing a High Availability solution across multiple data
> > centers things become much harder.
> >
> > The database vendors have different approaches to this problem, but
> > generally use a primary active database in data center 1 and a standby
> > database in data center 2.  Microsoft provides a new capability to
> support
> > this in SQL Server 2012 AlwaysOn, for MySQL there is Continuent, for
> Oracle
> > there is RAC with Data Guard.
> >
> > All these HA approaches are inherently complex to setup and administer.
> >
> > NuoDB offers fresh approach at this problem. The video below gives a good
> > overview:
> >
> > http://vimeo.com/33785505
> >
> > I looked at early beta's of NuoDB about 8 months ago, and it was too
> > unstable at this point. Whether NuoDB becomes a viable player in the
> market
> > is open to question. Building SQL databases is hard, but they do have
> > people like Jim Starkey on board and some serious Venture Captial backing
> >
> > I don't think adding NuoDB support to Cayenne would be trivial, as they
> > have their own DDL and SQL dialect as does every database vendor. I
> wished
> > they had a MySQL emulation mode.
> >
> > Again I have no direct commercial interest in this, and would look at
> > contributing/developing this code in the Cayenne project if people were
> > interested.
> >
> > regards Malcolm Edgar
> >
> > On Wed, Aug 15, 2012 at 9:15 AM, Aristedes Maniatis <ari@maniatis.org
> >wrote:
> >
> >> On 14/08/12 11:32pm, Aristedes Maniatis wrote:
> >>
> >>> On 14/08/12 10:00pm, Malcolm Edgar wrote:
> >>>
> >>>> Hi All,
> >>>>
> >>>> I am interested in developing a Cayenne Adaptor for the NuoDB database
> >>>> https://www.nuodb.com/
> >>>>
> >>>> Its a very interesting database technology for developing scale out
/
> >>>> high
> >>>> availability solutions. The stuff that relational databases struggle
> >>>> with.
> >>>>
> >>>> Presumably to get started I would need to create a NuoDBAdaptor
> >>>> extending *
> >>>> org.apache.cayenne.dba.**JdbcAdapter*.  Is this the best place to
> >>>> start, does
> >>>> anyone have any recommendations, or would like to be involved ?
> >>>>
> >>>> regards Malcolm Edgar
> >>>>
> >>>
> >>>
> >>> Interesting. Their website is full of marketing speak, but very light
> on
> >>> what makes this database so "revolutionary". What is that attracts you
> to
> >>> it over the choice of existing open source databases?
> >>>
> >>> If it supports the basic SQL specification, there is probably very
> little
> >>> code to implement in the Cayenne dba package.
> >>>
> >>> Ari
> >>>
> >>
> >> Just to be clear Malcolm, I'm not being critical of your effort at all.
> >> The more databases Cayenne supports the better. But I've never come
> across
> >> Nuo before and I'm curious about what it offers. Certainly mysql's
> >> master/master clustering capabilities leave a bit to be desired, but as
> a
> >> basic SQL/storage engine I wonder how easy it would be for anyone to
> >> surpass postgresql/mysql after all the years of bug fixing and tuning.
> >>
> >> I've not been able to Google any benchmarks or other third party
> reviews.
> >> The best I found was this:
> >>
> >>   http://sqlandsiva.blogspot.**com.au/2011/11/nuodb-acid-**
> >> compliant-scalable-cloud_02.**html<
> http://sqlandsiva.blogspot.com.au/2011/11/nuodb-acid-compliant-scalable-cloud_02.html
> >
> >>
> >> which suggests that about 90% of the SQL standard is implemented. I
> guess
> >> the real question is which 90%?
> >>
> >>
> >>
> >>
> >> Ari
> >>
> >>
> >> --
> >> -------------------------->
> >> Aristedes Maniatis
> >> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
> >>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message