Re: casting chars to numbers. IMO NuoDB driver does it right and others are doing it wrong ;) With John's type-safe properties available on trunk per CAY-1724 it will be easier for the users to ensure the correct expression argument type:
// since AGE is Property<Integer>, a user can't pass a String here Expression e = Artist.NAME.eq("Pablo").andExp(Artist.AGE.gt(40)); Re: branches Yeah, you can develop this on trunk and/or some of the STABLE branches. I guess STABLE-3.1 is a tricky one, as it is in Beta and presumably in feature freeze. So according to our own convention, new features can only appear as 3.1.1 (but not 3.1-final). If that's an issue for you, we can fork 3.1 into "STABLE" and "BETA". Let's continue this discussion on dev if you have more questions. Andrus On Aug 23, 2012, at 10:41 AM, Malcolm Edgar wrote: > 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 > <and...@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 <a...@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 >>>> >> >>