Andreas, first thanks for the article, it was hugely interesting and
of course thanks to all who have given us some alternatives to argue
about!  A few themes seem to come out of this for me

1)  Some people are just either happier with what they know (SQL/
RDBMS) - perfectly understandable and probably more productive
initially at least, but if someone didn't move the goalposts now and
then we would never get any innovative change.

2)  Some just have to live with existing code and work with that.
That's life I guess.

3)  Others see the datastore as a component of a different way of
working which overall has some major benefits - making the use of the
datastore simple and efficient is just part of the equation.

4)  Abstraction is all very well - but if the trade off is a lack of
clarity or poor performance then it is in danger of being an objective
for its own sake.

I don't think anyone has mentioned the famous impedance mis-match
between OOP and RDBMS.  It seems to me that BigTable is a better match
to OOP than an RDBMS is - although I found JDO a struggle.

I have the luxury of developing a Java app from scratch, which of
course is not the same for everyone.  I did get JDO to work but it
does feel like I am making life hard for myself by doing so.  Now all
I have to do is decide which of the alternatives to go for .....


On Mar 30, 7:33 pm, Jeff Schnitzer <j...@infohazard.org> wrote:
> On Tue, Mar 30, 2010 at 8:03 AM, Guillermo Schwarz
>
> <guillermo.schw...@gmail.com> wrote:
>
> > SQL can be run on top of a file system (fseek, read, write) or on top of a
> > persistent hashmap (datastore).
>
> > If you create a SQL interface on top of any of those, then it is a
> > relational database, not a fake but a real relational database. Why would I
> > want a relational database? Consistency, for starters. ACID transactions.
> > Set operations.
>
> ...except that you *can't* actually create a performant relational
> database on top of appengine.
>
> Let's be realistic here.  There is one reason and one reason only why
> modern RDBMSes can perform at anything remotely like the speeds
> necessary for web applications:
>
>  * Lots and lots of RAM, enough to cache whole indexes.
>
> You don't have this in appengine.  You get, at best, somewhere around
> 110 megs.  How fast do you think an RDBMS is going to perform on a
> machine that has been lobotomized to 100 megs of RAM???  If you have
> an antique computer from the 1990s you can find out.
>
> I have no doubt that you can create an RDBMS on top of the GAE
> datastore.  I also have no doubt that trying to tune a Hibernate app
> to run at reasonable speeds will be a nightmare that I never want to
> experience.
>
> Jeff

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to