Re: [appengine-java] Re: Per-minute quota

2011-01-05 Thread Guillermo Schwarz
What you can do:

1. Whenever you are about to reach quota (using algorithm outlined below),
but before reaching that quota, display a message to your user saying:

"Sorry, service outage, please try again later"

2. And then email to you the status of the quota.

Then you can count the number of emails you get per day and have an idea of
how much quota you need to buy.

Cheers,
Guillermo.

On Tue, Jan 4, 2011 at 8:55 AM, Anton Ananich wrote:

> Thanks for the answer,
>
> But during 1 minute I'm able to run out of several quotes so this
> approach does not work for me. It is too complicated and lime
> consuming.
>
> Respectfully,
> Anton
>
> On Dec 27 2010, 9:52 am, Didier Durand 
> wrote:
> > Hi Anton,
> >
> > In case, you can find the quotas (free and with billing) here in this
> > table:http://code.google.com/appengine/docs/quotas.html#Resources
> >
> > Maybe by using it and the infos delivered by the admin console, you
> > can figure out where you reach the quota.
> >
> > regards
> > didier
> >
> > On Dec 27, 7:54 am, Anton Ananich  wrote:
> >
> >
> >
> >
> >
> >
> >
> > > Hi!
> >
> > > Sometimes I can see this message:
> >
> > > This Google App Engine application is temporarily over its serving
> > > quota.  Please try again later.
> >
> > > Is there a way to find out: which exact per-minute quota was exceeded?
> >
> > > Thanks,
> > > Anton
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



Re: [appengine-java] example maven ,sping, jpa, gae

2011-01-05 Thread Guillermo Schwarz
Yes, if you downloaded gae-j, there is an examples directory where you can
find many examples.

All of them run with ant. I don't know if they also run with maven, but
maven can call ant.

For Spring I don't know. Most users are complaining that Spring is too slow.

For JPA I don't know either. I think there are examples for JDO (using
datanucleus).

Cheers,
Guillermo.

On Wed, Jan 5, 2011 at 12:26 PM, fachhoch  wrote:

> I am new bee getting started with gae , is there any example   project for
> maven ,spring, jpa with datanuclues, gae ?
>
> --
> 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.
>



-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



Re: [appengine-java] Re: 1.3.8 upgrade delete datastore contents

2010-10-21 Thread Guillermo Schwarz
Same thing just happened to me...

Any guess when this could be fixed?

Cheers,
Guillermo.

On Wed, 2010-10-20 at 10:21 -0700, Yegor wrote:
> Actually, I have seen this behaviour in several recent releases of the
> SDK. At this point, every time I upgrade, I kinda half-expect that my
> test data will be gone. It would be nice if local data persisted
> between releases.
> 
> On Oct 19, 12:20 pm, "Ikai Lan (Google)" 
> wrote:
> > This is a known issue with the 1.3.8 release. We're looking into it.
> >
> > --
> > Ikai Lan
> > Developer Programs Engineer, Google App Engine
> > Blogger:http://googleappengine.blogspot.com
> > Reddit:http://www.reddit.com/r/appengine
> > Twitter:http://twitter.com/app_engine
> >
> > On Mon, Oct 18, 2010 at 11:06 AM, Christian Goudreau <
> >
> >
> >
> >
> >
> >
> >
> > goudreau.christ...@gmail.com> wrote:
> > > Same here and that's kinda problematic, I had a lot of test data and it
> > > would take days to reinitialize everything...  I guess I'll have no other
> > > choice but to come back to AppEngine 1.3.7 since the datastore.bin doesn't
> > > seem to be affected.
> >
> > > Cheers,
> >
> > > On Mon, Oct 18, 2010 at 2:29 AM, Vlad Skarzhevskyy  > > > wrote:
> >
> > >> My data also disappeared in development environment with the same
> > >> error.
> >
> > >> --
> > >> 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 > >>  unsubscr...@googlegroups.com>
> > >> .
> > >> For more options, visit this group at
> > >>http://groups.google.com/group/google-appengine-java?hl=en.
> >
> > > --
> > > Christian Goudreau
> > >www.arcbees.com
> >
> > >  --
> > > 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 > >  unsubscr...@googlegroups.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine-java?hl=en.
> 

-- 
Simplex Veri Sigillum

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



Re: [appengine-java] Re: Problem with refreshing static files

2010-10-21 Thread Guillermo Schwarz

Did you try to clear the cache in the browser?

Saludos,
Guillermo Schwarz.

El 21-10-2010, a las 16:09, hadf  escribió:


Mmmhh I thought it works fine with appserver command, but I have the
same problem finally.

On 21 oct, 19:42, hadf  wrote:

I have a CSS file main.css in my war directory. I've modified it, but
the trouble is that when I execute my project in Eclipse as a
WebApplication, the server delivers the old version of the file. All
works fine with the appserver command.

I searched in the workspace, and even in my hole homedir, but there  
is

a single file main.css. If the server delivers an old version, is
there a cache directory ? But where it is ? And how to refresh this
cache ? I tried to clean the project in Eclipse, but with no  
result. I

had the same problem few weeks ago with the web.xml file.

Can you help me please.


--
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-java@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 
.




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



Re: [appengine-java] How to get rid of a hanging mapreduce job?

2010-10-15 Thread Guillermo Schwarz

Which map reduce library are you using?

Saludos,
Guillermo Schwarz.

El 15-10-2010, a las 18:44, burnayev  escribió:


Here's the scoop...

One of my first mapreduce jobs didn't want to complete by itself. It
did not want to abort either. To get rid of the sucker I deployed a
new application version and deleted the one the job was running
against. I also manually deleted all the residual state mapreduce
created in the datastore. That seemed to kill most of it. However now,
5 days later, there are still two artifacts - mapperCallback and
controllerCallback - that disturb my serenity (and keep sucking the
juice) by popping up every hour or so. Obviously they are looking for
a job that exists no more and fail miserably with a stack trace
similar to below.

Is there a way to make them go away?



java.lang.RuntimeException: Couldn't find MR with job ID:
job_1286643750234_0001
   at
com.google.appengine.tools.mapreduce.AppEngineJobContext.getConfigurationFromRequest(
AppEngineJobContext.java:
157)
   at
com.google.appengine.tools.mapreduce.AppEngineJobContext. 
(AppEngineJobContext.java:

110)
   at
com.google.appengine.tools.mapreduce.MapReduceServlet.handleController( 
MapReduceServlet.java:

507)
   at
com.google.appengine.tools.mapreduce.MapReduceServlet.doPost 
(MapReduceServlet.java:

222)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
   at org.mortbay.jetty.servlet.ServletHolder.handle 
(ServletHolder.java:

511)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1166)
   at
com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter 
(ParseBlobUploadFilter.java:

97)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
   at
com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter 
(SaveSessionFilter.java:

35)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
   at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter 
(TransactionCleanupFilter.java:

43)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1157)
   at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
388)
   at
org.mortbay.jetty.security.SecurityHandler.handle 
(SecurityHandler.java:

216)
   at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
182)
   at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
765)
   at org.mortbay.jetty.webapp.WebAppContext.handle 
(WebAppContext.java:

418)
   at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle 
(AppVersionHandlerMap.java:

238)
   at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
   at org.mortbay.jetty.Server.handle(Server.java:326)
   at org.mortbay.jetty.HttpConnection.handleRequest 
(HttpConnection.java:

542)
   at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:923)
   at
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable 
(RpcRequestParser.java:

76)
   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
   at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest( 
JettyServletEngineAdapter.java:

135)
   at
com.google.apphosting.runtime.JavaRuntime.handleRequest 
(JavaRuntime.java:

261)
   at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:8483)
   at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:8481)
   at
com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest 
(BlockingApplicationHandler.java:

24)
   at com.google.net.rpc.impl.RpcUtil.runRpcInApplication 
(RpcUtil.java:

418)
   at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:
572)
   at com.google.tracing.TraceContext$TraceContextRunnable
$1.run(TraceContext.java:448)
   at com.google.tracing.TraceContext.runInContext(TraceContext.java:
688)
   at com.google.tracing.TraceContext
$AbstractTraceContextCallback.runInInheritedContextNoUnref 
(TraceContext.java:

326)
   at com.google.tracing.TraceContext
$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:
318)
   at com.google.tracing.TraceContext
$TraceContextRunnable.run(TraceContext.java:446)
   at
java.util.concurrent.ThreadPoolExecutor.runWorker 
(ThreadPoolExecutor.java:

1110)
   at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:636)

Uncaught exception from servlet
java.lang.RuntimeException: Couldn't find MR with job ID:
job_1286643750234_0001
   at
com.google.appengine.tools.mapreduce.AppEngineJobContext.getConfigurationFromRequest( 
AppEngineJobContext.java:

157)
   at
com.google.appengine.tools.mapreduce.AppEngineJobContext. 
(AppEngineJobConte

Re: [appengine-java] Re: Spring MVC on GAE: Slow Load Time

2010-10-13 Thread Guillermo Schwarz
ok, I didn't know that, that is interesting.

Cheers,
Guillermo.

On Wed, Oct 13, 2010 at 4:52 PM, Vladimir  wrote:

> @Guillermo
>
> The problem with using Echo or GWT entirely for the frontend is search
> engine optimization. If you take a look at the source of any website
> that's built using GWT, you won't see much content at all, and that's
> exactly what Google, Yahoo, etc see right now. This might change in
> the future, but as far as I can tell not in the 'near' future :)
>
> But I'm seriously consider slim3 right now. Wonder if it can easily
> integrate with sitemesh, cause that part of my existing application I
> really don't want to change much (everything else is still easy to
> refactor).
>
> On Oct 13, 11:40 am, Guillermo Schwarz 
> wrote:
> > Spring is all about rejecting the bloated EJBs and now Spring is even
> more
> > bloated than the EJBs ever were.
> >
> > I would switch away from Spring until they resolve their issues.
> >
> > Echo2 is a nice presentation framework.
> >
> > Cheers,
> > Guillermo.
> >
> >
> >
> >
> >
> > On Wed, Oct 13, 2010 at 10:28 AM, Vladimir  wrote:
> > > Thanks for the replies! Probably the best choice right now is to
> > > switch away from Spring entirely. I wonder how Google/Spring is going
> > > to tackle this issue, especially since they're working on creating a
> > > closer integration between the two companies' technologies (they even
> > > talked about Roo and GWT at Google I/O).
> >
> > > On Oct 13, 9:24 am, Vladimir  wrote:
> > > > Thanks Marcelo!
> >
> > > > BTW,  how long is your load time using VRaptor, and how complicated
> is
> > > > your app? (do you use any security modules, jdo, etc)
> >
> > > > On Oct 7, 7:41 am, Marcelo Madeira  wrote:
> >
> > > > > Vladimir,
> >
> > > > > I am using the cron job solutions... i know that it´s not the best
> > > > > solutions but it´s working perfectly.
> > > > > I don´t recommend you to use spring in GAE. The spring´s load time
> is
> > > > > not acceptable in GAE.
> >
> > > > > I am using VRaptor + Objectify and the startup time is not a
> problem
> > > > > for me.
> >
> > > > > Sorry about some english mistakes.
> >
> > > > > Marcelo Madeira
> > > > > Brazil
> >
> > > > > On Oct 6, 4:44 pm, Vladimir  wrote:
> >
> > > > > > Hello All!
> >
> > > > > > I recently deployed a Spring MVC application to google app
> engine,
> > > and
> > > > > > the intial load time is about 7sec. Once the application is
> loaded,
> > > > > > the app is quite responsive. But, if the app is idle for more
> than 1
> > > > > > minute (there isn't ANY traffic to it) the app needs to be again
> > > > > > reloaded by GAE, which, takes about 7sec as well. For a PRD-level
> > > > > > application this is unacceptable. (The app is empty -- I'm not
> even
> > > > > > using JPA, Sitemesh, Spring Security, etc yet. It just loads a
> jsp
> > > > > > page with some text.)
> >
> > > > > > The only "best practice" to fix the 'load time' I've seen so far
> is
> > > to
> > > > > > set up a cron job that hits the url every minute, therefore
> keeping
> > > > > > the app 'loaded'. Obviously this is a terrible solution.
> >
> > > > > > So here are the questions:
> > > > > > Are there any "best practices" for Spring on GAE in terms of
> > > > > > "responsiveness"?
> > > > > > Since google and spring are working on developing better
> integration
> > > > > > between the two of them, has there been any news/progress on this
> > > > > > problem? I can't find anything concrete, that's why I'm asking it
> > > here
> >
> > > > > > Thanks!
> > > > > > Vladimir
> >
> > > --
> > > 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+u

Re: [appengine-java] Re: Spring MVC on GAE: Slow Load Time

2010-10-13 Thread Guillermo Schwarz
Spring is all about rejecting the bloated EJBs and now Spring is even more
bloated than the EJBs ever were.

I would switch away from Spring until they resolve their issues.

Echo2 is a nice presentation framework.

Cheers,
Guillermo.

On Wed, Oct 13, 2010 at 10:28 AM, Vladimir  wrote:

> Thanks for the replies! Probably the best choice right now is to
> switch away from Spring entirely. I wonder how Google/Spring is going
> to tackle this issue, especially since they're working on creating a
> closer integration between the two companies' technologies (they even
> talked about Roo and GWT at Google I/O).
>
>
>
> On Oct 13, 9:24 am, Vladimir  wrote:
> > Thanks Marcelo!
> >
> > BTW,  how long is your load time using VRaptor, and how complicated is
> > your app? (do you use any security modules, jdo, etc)
> >
> > On Oct 7, 7:41 am, Marcelo Madeira  wrote:
> >
> >
> >
> > > Vladimir,
> >
> > > I am using the cron job solutions... i know that it´s not the best
> > > solutions but it´s working perfectly.
> > > I don´t recommend you to use spring in GAE. The spring´s load time is
> > > not acceptable in GAE.
> >
> > > I am using VRaptor + Objectify and the startup time is not a problem
> > > for me.
> >
> > > Sorry about some english mistakes.
> >
> > > Marcelo Madeira
> > > Brazil
> >
> > > On Oct 6, 4:44 pm, Vladimir  wrote:
> >
> > > > Hello All!
> >
> > > > I recently deployed a Spring MVC application to google app engine,
> and
> > > > the intial load time is about 7sec. Once the application is loaded,
> > > > the app is quite responsive. But, if the app is idle for more than 1
> > > > minute (there isn't ANY traffic to it) the app needs to be again
> > > > reloaded by GAE, which, takes about 7sec as well. For a PRD-level
> > > > application this is unacceptable. (The app is empty -- I'm not even
> > > > using JPA, Sitemesh, Spring Security, etc yet. It just loads a jsp
> > > > page with some text.)
> >
> > > > The only "best practice" to fix the 'load time' I've seen so far is
> to
> > > > set up a cron job that hits the url every minute, therefore keeping
> > > > the app 'loaded'. Obviously this is a terrible solution.
> >
> > > > So here are the questions:
> > > > Are there any "best practices" for Spring on GAE in terms of
> > > > "responsiveness"?
> > > > Since google and spring are working on developing better integration
> > > > between the two of them, has there been any news/progress on this
> > > > problem? I can't find anything concrete, that's why I'm asking it
> here
> >
> > > > Thanks!
> > > > Vladimir
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



Re: [appengine-java] Re: Spring MVC on GAE: Slow Load Time

2010-10-07 Thread Guillermo Schwarz
I would remove Spring entirely.

Usually proxies are enough for transaction management.

Also instead of Spring MVC you could use jquery or echo2.

Cheers,
Guillermo.

On Thu, 2010-10-07 at 17:32 -0700, Starman wrote:
> I have a Spring app with a pretty full stack currently being developed
> on gae. I quickly hit the 30 seconds limit at startup, hence the app
> would no longer even boot. I removed jpa in favor of Objectify,
> removed all the transaction management as I don't use entity groups,
> removed some features that were doing classpath scanning and other
> byte code injection, used as much lazy initializtion as possible. I
> got my startup time back to 20 seconds. Until I can pay to keep a jvm
> up, this is unnacceptable.
> 
> I haven't profile Spring Security yet, which is still the biggest
> bottleneck. But even with more optimization work, I will be lucky to
> get a 10 seconds startup.
> 
> We'll see where this all goes.
> 

-- 
Simplex Veri Sigillum

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



Re: [appengine-java] Spring AOP on App Engine?

2010-09-06 Thread Guillermo Schwarz
Use Dynamic Proxy instead, it works fine.

Cheers,
Guillermo.

On Mon, Sep 6, 2010 at 5:55 AM, Vikas Hazrati  wrote:

> Has anyone got spring aop working with GAE? I get the following issue
> deploying aop on the app engine
>
> Error creating bean with name 'entityManagerFactory': Post-processing
> of the FactoryBean's object failed; nested exception is
> java.lang.StackOverflowError
>at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:
> 480)
>at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
> $1.run(AbstractAutowireCapableBeanFactory.java:409)
>at java.security.AccessController.doPrivileged(Native Method)
>
> As always the loca dev environment 1.3.7 does not give any issues and
> all my aspects work fine there. I have a timesheet and financial app
> which and I do not want to log the audit calls at all the places. I
> have defined the relevant pointcuts and auditing should be done at
> those points.
>
> Any suggestions / solutions?
>
> Regards | Vikas
> www.inphina.com
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



Re: [appengine-java] Oracle sues Google on Java Patents and Copyright

2010-08-14 Thread Guillermo Schwarz
Reminds me of 1998, when Sun sued Microsoft over modifications on Java,
which turned up to be the equivalent of C# delegates and could be easily
implemented in Java but so far have not been included in Java (closures
are far more ambitious, but still not implemented).

The result of the lawsuit was Microsoft dropping Java in favor of
creating C#.

If the result today is Google dropping Java, I doubt they will select
another language. Probably they will just develop their own Java clone
or use one of the available clones already in the open source world.

I still don't see the point of Oracle. Java is already open source. If
they are trying to protect the trademark, it is non-sense, anyone can
copy Java, rename it, etc.

If they are trying to protect any patent, they need to show proof that
they reasonably attempted to protect their intellectual property
(signing NDAs is the typical example
http://www.joelonsoftware.com/articles/fog71.html). In this
case, they didn't protect it if they open sourced it.

Cheers,
Guillermo.

On Sat, 2010-08-14 at 17:37 +0200, Francois MASUREL wrote:
> Yep, but it's not the full standard OpenJDK as some classes are not
> accessible (white list).
> 
> I bet Oracle doesn't agree with that.  But they'll probably do one
> thing at a time, we'll see.
> 
> 
> I don't enjoy what is going on at the moment, Java being my main
> developping language for almost 10 years now.
> 
> 
> François
> 
> 
> On Sat, Aug 14, 2010 at 17:12, Wilson MacGyver 
> wrote:
> I don't think so. The lawsuit is really against the android VM
> Dalvik.
> Since GAE uses openjdk as far as I know, it's not a problem.
> 
> On Aug 14, 2010, at 5:52 AM, François Masurel
>  wrote:
> 
> > Will Google App Engine for Java be impacted ?
> >
> > I guess that if the Oracle patents are validated, Google
> wont be able
> > to use their "adapted" version of the JDK anymore because it
> will not
> > pass the TCK tests which is required to get the GPL patent
> grant.
> >
> > Does that mean the end of the Google App Engine for Java
> platform any
> > time soon ?
> 
> --
> 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.
> 
> 
> 
> 
> -- 
> 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.

-- 
Simplex Veri Sigillum

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



Re: [appengine-java] Re: Oracle sues Google on Java Patents and Copyright

2010-08-14 Thread Guillermo Schwarz
Any one can sue any one, for sure.

Is the threat of a patent lawsuit enough to discourage individual
developers to continue creating open source? Maybe.

Is it profitable to sue individual open source developers? Of course
not. They are not generating any revenue and therefore given that any
patent defended in court cost $1 million, any company spending that kind
of money would soon run out of business.

FUD. Fear, Uncertainty and Doubt.

The reality is that open source kills patents, because open source
developers can easily show that they created the software before the
patents were granted.

Some patents may be valid, some parts of Linux for example could violate
some patents. But the US law requires patent holders to send a "cease
and desist" letter to the violator.

The violator (the company commercializing the product in violation of
the patent) may choose to:

1. Pay royalties.
2. Stop commercializing the product.
3. Continue commercializing the product, ignoring the letter and risk
being sued.
4. Stop commercializing the product for a while, circumvent the patent
and continue commercializing the product.

Clearly none of those affect the individual open source developer, only
companies using the invention and commercializing a product that
includes said invention. By the way, if said company uses Perl in your
internal processes and Perl is found to violate a patent, the company
would not have to pay royalties, because the product in question does
not contain the invention.

As you can see, it is a very uphill situation for the patent holder,
since most companies using open source could easily circumvent patents.
That's the strategy Linux is using and it has worked wonders in the last
10 years.

Cheers,
Guillermo.

On Sat, 2010-08-14 at 07:19 -0700, François Masurel wrote:
> Open Source doesn't protect at all against patents, that's why they
> have created the GPL v3 which include a patent grant license.  Apache
> License might also include some kind of patent protection.  Most open
> source licenses don't protect against patent lawsuits.
> 
> I've found an interesting article "Software Patent Lawsuits Against
> Open Source Developers" by Bruce Perens : 
> http://technocrat.net/d/2006/6/30/5032/
> 
> Some patents have been invalidated, some have not.
> 
> On 14 août, 16:01, Guillermo Schwarz 
> wrote:
> > On Sat, 2010-08-14 at 05:54 -0700, François Masurel wrote:
> > > > Google could always grab an open source version of Java, name it Gava 
> > > > or whatever, and then rename the service gae/gava.
> >
> > > If the Oracle patents are valid, they will have to pay Oracle
> > > royalties even if they use an Open Source version of Java like Apache
> > > Harmony unless this Java implementation circumvent the Oracle patents,
> > > maybe Dalvik ?
> >
> > I'm not a lawyer, but I think patents only prevent commercialization of
> > a product, not using the invention or creating an open source product.
> >
> > Gae/J is a commercial service, but if you use an open source product in
> > order to provide that service, then those patents wouldn't apply.
> >
> > Then in court Oracle would argue that the patents apply to the closed
> > source part rather than the open source part, and Google would easily
> > show that it applies to the open source part or have a patent to protect
> > their invention.
> >
> >
> >
> > > It would be interesting to get the Apache Harmony guys point of view.
> >
> > It is open source => no problem. As you may already know, this has never
> > been tested in court, so who knows really.
> >
> > It it were tested in court and open source won over patents, then
> > nothing would have changed. For example the zip algorithm was patented,
> > and there were a lot of free implementations for it. Patents have a life
> > span of 25 years or so. The strategy Unisys (the holder of the patent)
> > used was to sue individual users of the patent, namely big websites that
> > had GIF encoded pictures. That triggered the creation of the PNG format.
> >
> > In case patents won over open source, it would be a very different
> > scenario, since most open source would have to be rewritten. There are
> > patents over basic technology on the Internet like sending files over a
> > communication link, or clicking on a link and downloading software, then
> > most of the Internet would have to be deconstructed and reimplemented
> > using workarounds. I think the Internet would be blacked out for a
> > number of years. There are so many commercial interests on the Internet
> > to continue operating that I see no opportunity for open source to l

Re: [appengine-java] Re: Oracle sues Google on Java Patents and Copyright

2010-08-14 Thread Guillermo Schwarz
On Sat, 2010-08-14 at 05:54 -0700, François Masurel wrote:
> > Google could always grab an open source version of Java, name it Gava or 
> > whatever, and then rename the service gae/gava.
> 
> If the Oracle patents are valid, they will have to pay Oracle
> royalties even if they use an Open Source version of Java like Apache
> Harmony unless this Java implementation circumvent the Oracle patents,
> maybe Dalvik ?

I'm not a lawyer, but I think patents only prevent commercialization of
a product, not using the invention or creating an open source product.

Gae/J is a commercial service, but if you use an open source product in
order to provide that service, then those patents wouldn't apply.

Then in court Oracle would argue that the patents apply to the closed
source part rather than the open source part, and Google would easily
show that it applies to the open source part or have a patent to protect
their invention.
> 
> It would be interesting to get the Apache Harmony guys point of view.
> 

It is open source => no problem. As you may already know, this has never
been tested in court, so who knows really.

It it were tested in court and open source won over patents, then
nothing would have changed. For example the zip algorithm was patented,
and there were a lot of free implementations for it. Patents have a life
span of 25 years or so. The strategy Unisys (the holder of the patent)
used was to sue individual users of the patent, namely big websites that
had GIF encoded pictures. That triggered the creation of the PNG format.

In case patents won over open source, it would be a very different
scenario, since most open source would have to be rewritten. There are
patents over basic technology on the Internet like sending files over a
communication link, or clicking on a link and downloading software, then
most of the Internet would have to be deconstructed and reimplemented
using workarounds. I think the Internet would be blacked out for a
number of years. There are so many commercial interests on the Internet
to continue operating that I see no opportunity for open source to loose
against patents.

My 0.02

> 
> On 14 août, 14:18, Guillermo Schwarz 
> wrote:
> > That's a very interesting question.
> >
> > First of all, I doubt Oracle would be interested in killing a cloud
> > technology based in Java if there are other corresponding technologies
> > doing the same (Python). It would kill half the market AND demonstrate
> > Java as inadequate for serious cloud computing.
> >
> > Supposing that Oracle had a competing technology that meant it would
> > make reasonable business sense to kill gae/j in order for developers to
> > switch to their technologies, then Google could always grab an open
> > source version of Java, name it Gava or whatever, and then rename the
> > service gae/gava.
> >
> > Cheers,
> > Guillermo.
> >
> > On Sat, 2010-08-14 at 02:52 -0700, François Masurel wrote:
> > > Will Google App Engine for Java be impacted ?
> >
> > > I guess that if the Oracle patents are validated, Google wont be able
> > > to use their "adapted" version of the JDK anymore because it will not
> > > pass the TCK tests which is required to get the GPL patent grant.
> >
> > > Does that mean the end of the Google App Engine for Java platform any
> > > time soon ?
> >
> > --
> > Simplex Veri Sigillum
> 

-- 
Simplex Veri Sigillum

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



Re: [appengine-java] Oracle sues Google on Java Patents and Copyright

2010-08-14 Thread Guillermo Schwarz
That's a very interesting question.

First of all, I doubt Oracle would be interested in killing a cloud
technology based in Java if there are other corresponding technologies
doing the same (Python). It would kill half the market AND demonstrate
Java as inadequate for serious cloud computing.

Supposing that Oracle had a competing technology that meant it would
make reasonable business sense to kill gae/j in order for developers to
switch to their technologies, then Google could always grab an open
source version of Java, name it Gava or whatever, and then rename the
service gae/gava.

Cheers,
Guillermo.

On Sat, 2010-08-14 at 02:52 -0700, François Masurel wrote:
> Will Google App Engine for Java be impacted ?
> 
> I guess that if the Oracle patents are validated, Google wont be able
> to use their "adapted" version of the JDK anymore because it will not
> pass the TCK tests which is required to get the GPL patent grant.
> 
> Does that mean the end of the Google App Engine for Java platform any
> time soon ?
> 

-- 
Simplex Veri Sigillum

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



Re: [appengine-java] Desarrollo de Aplicaciones con Eclipse

2010-07-07 Thread Guillermo Schwarz
Edixon,


¿Lo quieres hacer en Google Application Engine?

Saludos,
Guillermo.

2010/7/6 Edixon Polanco 

> Buenas Tardes.
>
> Como puedo empezar a desarrollar una aplicación que funcione como una
> biblioteca en la cual pueda subir mis archivos o libros y poder buscar
> dentro de ellos
>
> Nota: Espero me puedan dar alguna idea
>
> Gracias.
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



Re: [appengine-java] Re: Ctrl+C doesnt stop development server

2010-06-15 Thread Guillermo Schwarz

This happens to me too, using Windows xp and ant.

Saludos,
Guillermo Schwarz.

El 14-06-2010, a las 13:04, "Ikai L (Google)"   
escribió:


What's the version of Windows you're running? Are you using ant or  
the Eclipse plugin?


On Fri, Jun 11, 2010 at 12:43 PM, bchoii  wrote:
Hi, I"m encountering the same issue.

JRE 1.6.0_20
GAE 1.3.4

On Jun 11, 3:08 am, "Ikai L (Google)"  wrote:
> We're seeing reports of this for folks using Windows. What version  
of
> Windows are you using? Are you using a JRE or JDK, and what  
versions or

> releases are you using? What version of GAE?
>
>
>
>
>
> On Wed, Jun 9, 2010 at 11:06 PM, shekhar  
 wrote:

> > Hi,
>
> > Anyone knows how to stop development server? I am starting it on
> > command prompt using ANT script but when I try to stop server  
using

> > Ctrl+C, server doesnt stop. I can see development server process
> > running by using Windwos Task Manager and I have to kill that  
process

> > in order to stop server. I want to avoid killing process.
>
> > Please enlighten 
>
> > --
> > 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.comappengine-java%2B unsubscr...@googlegroups.com>

> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine-java?hl=en.
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> Blog:http://googleappengine.blogspot.com
> Twitter:http://twitter.com/app_engine
> Reddit:http://www.reddit.com/r/appengine

--
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-java@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 
.





--
Ikai Lan
Developer Programs Engineer, Google App Engine
Blog: http://googleappengine.blogspot.com
Twitter: http://twitter.com/app_engine
Reddit: http://www.reddit.com/r/appengine

--
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-java@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 
.


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



Re: [appengine-java] Re: Mysql database in App Engine datastore

2010-05-24 Thread Guillermo Schwarz
You can use jiql in the mean time.

http://www.jiql.org/xwiki/bin/view/Main/

Cheers,
Guillermo.

On Mon, May 24, 2010 at 2:05 AM, Tristan wrote:

> If you can wait for Google App Engine for Business it will support SQL
> storage eventually and you won't have to convert anything.
>
> http://code.google.com/appengine/business/roadmap.html
>
>
> On May 23, 12:16 am, Jitendra Gupta  wrote:
> > How to store my Mysql database  in App Engine datastore ?
> >
> > --
> > 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 athttp://
> groups.google.com/group/google-appengine-java?hl=en.
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



Re: [appengine-java] Can't decide: JDO, Twig-Persist or Objectify?

2010-04-26 Thread Guillermo Schwarz
Hi,

Why is Twig "only one developer"?

Cheers,
Guillermo.

On Sat, Apr 24, 2010 at 3:04 PM, jbdhl  wrote:

>
>
>  * Twig
>  Pros: simple, low startup latency
>  Cons: only one developer (major drawback), GAE-only
>
>

-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



[appengine-java] May I suggest ... (was: Broken URL Mapping in GAE 1.3.3 ?)

2010-04-23 Thread Guillermo Schwarz
May I suggest that when a new version of gae is available, people can
choose which apps to migrate to the new version for some time, until
the old versions become unsupported?

For example, if 1.3.3 just came out, we could have 4 different
versions of gae to choose: 1.3.3, 1.3.2, 1.3.1 and 1.3.0. When 1.3.4
finally arrives, all apps in version 1.3.0 et automatically migrated
to 1.3.1. Would that work for you?

To close my argument, imagine if Windows updated itself without
warning every so often. How would you feel about that?

Cheers,
Guillermo.

On 23 abr, 06:52, Miroslav Genov  wrote:
> Starred.
>
> Thanks for the assitance keyelo. I hope that problem will soon be removed.
>
> Regards,
>   Miroslav
>
> On 04/23/2010 01:48 PM, kinyelo wrote:
>
> > Issue opened
> >http://code.google.com/p/googleappengine/issues/detail?id=3138
>
> --
> 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 
> athttp://groups.google.com/group/google-appengine-java?hl=en.

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



Re: [appengine-java] Re: Objectify - Twig - SimpleDS articles

2010-03-30 Thread Guillermo Schwarz
Andreas,

I think there is more misunderstanding again.

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.

Read:
1. http://www.buzzle.com/articles/advantages-of-relational-databases.html
2. http://www.sunadal.co.uk/db.php
3. http://www.euclideanspace.com/software/information/relational/index.htm

Working directly with aseembly code and bits may be what you prefer, but if
history is correct, computer science is about building abstractions. Good
abstractions. I agree that you can create the wrong tools for the job, but
that doesn't stop other people to investigate and innovate to create better
tools (better abstractions).

BTW: You dont need to use JDBC directly when working with CloudDB or jiql.
You can always select Hibernate, JDO or even JPA. The advantage of using an
extra level of abstraction is that if later the DataStore changes or there
is a new alternative to the DataStore that is faster (but has a new API) all
you need to do is to reimplement SQL on top of it and voila: All your
applications have been ported effortlessly. That's the whole point of using
abstraction layers.

Cheers,
Guillermo.

On Tue, Mar 30, 2010 at 10:49 AM, Andreas Borglin  wrote:

>
> Ok, you seem to misunderstand me quite a bit here.
>
> I never said it can't be used. I just said that I don't want to.
> Other than for portability reasons, why would I want to pretend that
> the datastore is relational by using a framework that emulates this?
>
> My main requirement, which was formed after using j...@gae, is that I
> want to use a framework that has a natural mapping to the datastore.
>
> I'm not saying that there is anything wrong with JDO/JPA, cloud2db or
> jiql in general. I'm just saying that, for me, it makes more sense to
> use a framework that exposes the true nature of the datastore (which
> is very different from a relational database), instead of hiding it
> under a portable abstraction layer. Simplicity and performance is more
> important than portability for me. That is of course not true for many
> other projects, so I'm only speaking from my perspective.
>
> If you can argue that jiql (or any other multi-platform framework like
> cloud2db, etc) can provide a natural mapping to the datastore AND be
> as efficient as the low-level wrappers, I'm all ears. j...@gae didn't
> do it for me at least.
>
> I never said that GWT had anything to do with SQL. I just don't want
> to use JDBC.
>
> On Mar 30, 3:51 pm, Guillermo Schwarz 
> wrote:
> > Andreas,
> >
> > I don't get it. You can use JDO and Hibernate with SQL. Given that
> > jiql has a Hibernate config file, I guess using Hibernate with jiql
> > would be so easy.
> >
> > What does GWT and JSP have to do with SQL anyway?
> >
> > Cheers,
> > Guillermo.
> >
> > On 30 mar, 03:51, Andreas Borglin  wrote:
> >
> >
> >
> > > Hi again.
> >
> > > I had a look at jiql.
> > > "jiql is a JDBC wrapper for accessing Google DataStore on Google App
> > > Engine for JAVA.
> > > jiql supports the use of standard SQL as a method for accessing
> > > the DataStore"
> >
> > > Even if I had seen jiql earlier I wouldn't have considered it anyway
> > > because,
> >
> > > 1. I want the API to make perfect sense for working with the
> > > datastore. "Standard SQL" doesn't meet this requirement.
> > > 2. I use GWT. Not JSP or any other technology to dynamically generate
> > > pages on server side.
> >
> > > On Mar 29, 8:52 pm, Guillermo Schwarz 
> > > wrote:
> >
> > > > One question: Why didn't you consider jiql?
> >
> > > > On Mon, Mar 29, 2010 at 1:04 PM, Blake 
> wrote:
> > > > > +1
> >
> > > > > On Mar 29, 4:03 am, Andreas Borglin 
> wrote:
> > > > > > Hi all.
> >
> > > > > > I recently decided to migrate away from JDO to one of the third
> party
> > > > > > datastore frameworks. At first I had only heard about objectify,
> but
> > > > > > after some further digging I  found out about 5 other frameworks
> as
> > > > > > well (Twig, SimpleDS, siena, slim3, cloud2db).
> >
> > > > > > I was only interested in simple wrapper frameworks that acted as
> a
> > > > > > convenience l

Re: [appengine-java] Re: Objectify - Twig - SimpleDS articles

2010-03-30 Thread Guillermo Schwarz
Sandeep,

Please read Andreas article (link is in the first post of this thread):

"The interview article has now been published and can be found at
http://borglin.net/gwt-project/?page_id=604 ."

It would be nice if the article included CloudDB too.

Cheers,
Guillermo.

On Tue, Mar 30, 2010 at 9:17 AM, Sandeep Sathaye
wrote:

> Hi,
>
> You can try Cloud2db also. Please see the website http://www.cloud2db.com.
> This works with any JDBC client tools/frameworks like Squirrel,
> PowerArchitect, Hibernate in a client/server mode. This also works on Google
> App Engine server with native JDBC driver.
>
> Thanks,
>
> Sandeep.
>
> On Tue, Mar 30, 2010 at 3:51 AM, Andreas Borglin <
> andreas.borg...@gmail.com> wrote:
>
>> Hi again.
>>
>> I had a look at jiql.
>> "jiql is a JDBC wrapper for accessing Google DataStore on Google App
>> Engine for JAVA.
>> jiql supports the use of standard SQL as a method for accessing
>> the DataStore"
>>
>> Even if I had seen jiql earlier I wouldn't have considered it anyway
>> because,
>>
>> 1. I want the API to make perfect sense for working with the
>> datastore. "Standard SQL" doesn't meet this requirement.
>> 2. I use GWT. Not JSP or any other technology to dynamically generate
>> pages on server side.
>>
>> On Mar 29, 8:52 pm, Guillermo Schwarz 
>> wrote:
>> > One question: Why didn't you consider jiql?
>> >
>> >
>> >
>> >
>> >
>> > On Mon, Mar 29, 2010 at 1:04 PM, Blake  wrote:
>> > > +1
>> >
>> > > On Mar 29, 4:03 am, Andreas Borglin 
>> wrote:
>> > > > Hi all.
>> >
>> > > > I recently decided to migrate away from JDO to one of the third
>> party
>> > > > datastore frameworks. At first I had only heard about objectify, but
>> > > > after some further digging I  found out about 5 other frameworks as
>> > > > well (Twig, SimpleDS, siena, slim3, cloud2db).
>> >
>> > > > I was only interested in simple wrapper frameworks that acted as a
>> > > > convenience layer above the AppEngine low-level API. I _want_ the
>> > > > framework to expose the true nature of the datastore, but at the
>> same
>> > > > time relieve the developer of the tedious tasks that's involved when
>> > > > working with the low-level API directly. It is much easier to work
>> > > > with the AppEngine datastore when its concepts, features,
>> constraints
>> > > > and limitations are exposed directly. You can read more about the
>> > > > reasons for this in the article.
>> >
>> > > > This left me with objectify, Twig and SimpleDS. (siena and cloud2db
>> > > > are multi-platform and slim3 is more than just a datastore
>> framework)
>> >
>> > > > I spent some time researching these when I got the idea to write an
>> > > > article about them. I contacted the authors for each framework and
>> > > > asked if they would be interested in participating. Passionate as
>> they
>> > > > are, they agreed :-). Thanks to Jeff Schnitzer (objectify), John
>> > > > Patterson (Twig) and Ignacio Coloma (SimpleDS) for this.
>> >
>> > > > The goal is to publish two articles; one interview with the authors,
>> > > > and one where I solve some typical scenario with each framework.
>> > > > The interview article has now been published and can be found
>> athttp://
>> > > borglin.net/gwt-project/?page_id=604.
>> > > > The code example article will be posted sometime in the upcoming two
>> > > > weeks.
>> >
>> > > --
>> > > 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> unsubscr...@googlegroups.com>
>> > > .
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/google-appengine-java?hl=en.
>> >
>> > --
>> > Saludos cordiales,
>> >
>> > Guillermo Schwarz
>> > Sun Certified Enterprise Architect
>>
>> --
>> You received this message because you are subscribed t

Re: [appengine-java] Re: Why should app startup times be a problem.

2010-03-30 Thread Guillermo Schwarz
Well, both Baz and Shawn are correct.

Shawn is correct from the economical point of view. Baz is correct from the
techinical point of view (no sane user would wait 15 seconds for a page to
appear, right?).

The great thing is that both can be done at the same time. Warmed instances
can be brought up in the background without the user knowing about it.

Cheers,
Guillermo.

On Mon, Mar 29, 2010 at 9:01 PM, Shawn Brown wrote:

> >   It's boggled my mind from day 1 why instances
> > aren't loaded in the background. I always assumed it would be addressed
>
> What is difficult to understand?
>
> 1 server has X resources
> warmed instanced require Y resources
>
> X - YN = resources left over for the server to fulfill requests.
>
> By reducing N (the number of warmed instances), you can increase the
> capacity to fulfill actual requests.
>
> By allowing us to pay for our own N, Google can presumably increase
> the capacity of each server or can increase the number of servers.
>
> I can see how it can cost Google to have unused apps loaded and ready
> to immediately serve.  Can't you.
>
> I don't see what the difficulty understanding is.
>
> Shawn
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



[appengine-java] Re: JIQL and SQL on appengine

2010-03-30 Thread Guillermo Schwarz
Jeff,

I think you are confused. You can use Hibernate and JDO on top of SQL.

Since both CloudDB and jiql provide a SQL interface to the datastore,
you could use either JDO or Hibernate on top of either CloudDB or jiql
and it should work flawlessly.

Cheers,
Guillermo.

On 30 mar, 04:51, Jeff Schnitzer  wrote:
> Hey, so one of the things I complained about in Andreas' great article
> is the difficulty of doing analytics on appengine.  GAE is great for
> operational systems, but ad-hoc queries require writing a bunch of
> code that is further complicated by the
> queue-30s-write-temp-data-to-datastore-requeue process.  Painful.
>
> I miss being able to run SQL.  I *don't* miss writing code against
> JDBC, and I *don't* miss configuring Java<->SQL systems like
> Hibernate, but I do miss the SQL command prompt when I want to know
> how many users logged in last week or what they've been doing.
>
> I'm tantalized by systems like Cloud2db and Jiql but it seems like
> you're focusing on building operational systems with JDBC.  I'm much
> happier writing my operational code in java at the higher level of
> objects and getting the better fidelity of mapping to native
> operations that you will with Objectify, JDO, or whatnot.  Maybe there
> are people who still write JDBC apps but they've got to be a pretty
> masochistic lot.
>
> What I really want is a bit of software (perhaps a version) that I can
> deploy into my application, and a command line (or GUI) tool I can use
> on my local box.  The tool would take my SQL statements (including
> joins and aggregation functions), turn this into a series of 30s
> requests, collate the results, and print them.  It could take hours,
> fine - as long as it eventually comes up with the answer.  I'd be
> willing to pay several hundred dollars for a tool like this.
>
> Is there any chance that JIQL will go in that direction?  Or are you
> thinking along the lines of the Cloud2db folks, basically "all or
> nothing".  I don't want to write JDBC apps, I just want to
> occasionally run some ad-hoc SQL against my existing apps.
>
> Thanks,
> Jeff
>
> On Tue, Mar 30, 2010 at 12:51 AM, Andreas Borglin
>
>  wrote:
> > Hi again.
>
> > I had a look at jiql.
> > "jiql is a JDBC wrapper for accessing Google DataStore on Google App
> > Engine for JAVA.
> > jiql supports the use of standard SQL as a method for accessing
> > the DataStore"
>
> > Even if I had seen jiql earlier I wouldn't have considered it anyway
> > because,
>
> > 1. I want the API to make perfect sense for working with the
> > datastore. "Standard SQL" doesn't meet this requirement.
> > 2. I use GWT. Not JSP or any other technology to dynamically generate
> > pages on server side.
>
> > On Mar 29, 8:52 pm, Guillermo Schwarz 
> > wrote:
> >> One question: Why didn't you consider jiql?
>
> >> On Mon, Mar 29, 2010 at 1:04 PM, Blake  wrote:
> >> > +1
>
> >> > On Mar 29, 4:03 am, Andreas Borglin  wrote:
> >> > > Hi all.
>
> >> > > I recently decided to migrate away from JDO to one of the third party
> >> > > datastore frameworks. At first I had only heard about objectify, but
> >> > > after some further digging I  found out about 5 other frameworks as
> >> > > well (Twig, SimpleDS, siena, slim3, cloud2db).
>
> >> > > I was only interested in simple wrapper frameworks that acted as a
> >> > > convenience layer above the AppEngine low-level API. I _want_ the
> >> > > framework to expose the true nature of the datastore, but at the same
> >> > > time relieve the developer of the tedious tasks that's involved when
> >> > > working with the low-level API directly. It is much easier to work
> >> > > with the AppEngine datastore when its concepts, features, constraints
> >> > > and limitations are exposed directly. You can read more about the
> >> > > reasons for this in the article.
>
> >> > > This left me with objectify, Twig and SimpleDS. (siena and cloud2db
> >> > > are multi-platform and slim3 is more than just a datastore framework)
>
> >> > > I spent some time researching these when I got the idea to write an
> >> > > article about them. I contacted the authors for each framework and
> >> > > asked if they would be interested in participating. Passionate as they
> >> > > are, they agreed :-). Thanks to Jeff Schnitzer (objectify), John
> >> > > Patterson (Twig) an

[appengine-java] Re: Objectify - Twig - SimpleDS articles

2010-03-30 Thread Guillermo Schwarz
Andreas,

I don't get it. You can use JDO and Hibernate with SQL. Given that
jiql has a Hibernate config file, I guess using Hibernate with jiql
would be so easy.

What does GWT and JSP have to do with SQL anyway?

Cheers,
Guillermo.

On 30 mar, 03:51, Andreas Borglin  wrote:
> Hi again.
>
> I had a look at jiql.
> "jiql is a JDBC wrapper for accessing Google DataStore on Google App
> Engine for JAVA.
> jiql supports the use of standard SQL as a method for accessing
> the DataStore"
>
> Even if I had seen jiql earlier I wouldn't have considered it anyway
> because,
>
> 1. I want the API to make perfect sense for working with the
> datastore. "Standard SQL" doesn't meet this requirement.
> 2. I use GWT. Not JSP or any other technology to dynamically generate
> pages on server side.
>
> On Mar 29, 8:52 pm, Guillermo Schwarz 
> wrote:
>
> > One question: Why didn't you consider jiql?
>
> > On Mon, Mar 29, 2010 at 1:04 PM, Blake  wrote:
> > > +1
>
> > > On Mar 29, 4:03 am, Andreas Borglin  wrote:
> > > > Hi all.
>
> > > > I recently decided to migrate away from JDO to one of the third party
> > > > datastore frameworks. At first I had only heard about objectify, but
> > > > after some further digging I  found out about 5 other frameworks as
> > > > well (Twig, SimpleDS, siena, slim3, cloud2db).
>
> > > > I was only interested in simple wrapper frameworks that acted as a
> > > > convenience layer above the AppEngine low-level API. I _want_ the
> > > > framework to expose the true nature of the datastore, but at the same
> > > > time relieve the developer of the tedious tasks that's involved when
> > > > working with the low-level API directly. It is much easier to work
> > > > with the AppEngine datastore when its concepts, features, constraints
> > > > and limitations are exposed directly. You can read more about the
> > > > reasons for this in the article.
>
> > > > This left me with objectify, Twig and SimpleDS. (siena and cloud2db
> > > > are multi-platform and slim3 is more than just a datastore framework)
>
> > > > I spent some time researching these when I got the idea to write an
> > > > article about them. I contacted the authors for each framework and
> > > > asked if they would be interested in participating. Passionate as they
> > > > are, they agreed :-). Thanks to Jeff Schnitzer (objectify), John
> > > > Patterson (Twig) and Ignacio Coloma (SimpleDS) for this.
>
> > > > The goal is to publish two articles; one interview with the authors,
> > > > and one where I solve some typical scenario with each framework.
> > > > The interview article has now been published and can be found athttp://
> > > borglin.net/gwt-project/?page_id=604.
> > > > The code example article will be posted sometime in the upcoming two
> > > > weeks.
>
> > > --
> > > 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 > >  unsubscr...@googlegroups.com>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine-java?hl=en.
>
> > --
> > Saludos cordiales,
>
> > Guillermo Schwarz
> > Sun Certified Enterprise Architect

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



Re: [appengine-java] Re: Why should app startup times be a problem.

2010-03-29 Thread Guillermo Schwarz
JohnJ,

The way I see it, you just need to pay for one warmed instance.

I've measured that one instance is enough to handle 30 requests per second.
Trying to execute more requests than that immediatly triggers the loading of
a new instance and so far some of the requests fail.

Therefore, If you are using 1 instance in real traffic (max 30 requests per
second), you only need another one when you reach 31 requests per second, so
that new instance in theory would all you need "warmed" (unless you think
you will jump from one instance to 3 instance from one second to the next).

Assuming all requests end before one second, and assuming the time to load
an instance to be kept "warmed" is a few seconds, you only need 1 warmed
instance added to the instances you are actually using (which should be
number of requests per second / 30).

Did I make myself clear?

Cheers,
Guillermo.

On Mon, Mar 29, 2010 at 1:58 PM, Ikai L (Google)  wrote:

> Hah, Blake, guess you caught us! We might be doing more stuff with that in
> addition to what went out with 1.3.2.
>
>
> On Fri, Mar 26, 2010 at 6:50 PM, Blake  wrote:
>
>> Ikai - that's awesome - great to see you guys listening to us.  Is
>> that doc already outdated?  Didn't you just release this?
>>
>> "Ability to select different availability vs. latency options for
>> Datastore"
>>
>> On Mar 26, 1:42 pm, "Ikai L (Google)"  wrote:
>> > Keeping reserved instances has been added to our public roadmap:
>> >
>> > http://code.google.com/appengine/docs/roadmap.html
>> >
>> > <http://code.google.com/appengine/docs/roadmap.html>As far as spinning
>> up
>> > additional instances, there are probably a few good solutions here.
>> We'll be
>> > best off collecting feedback when we ship reserved instances on which
>> > solution works best.
>> >
>> >
>> >
>> >
>> >
>> > On Fri, Mar 26, 2010 at 10:38 AM, gholler 
>> wrote:
>> > > Thanks for your replies.  I think we would want an option to pay to
>> > > keep at least one instance "warm" and ready to go at any time (I don't
>> > > know what makes sense for a fee though).
>> > > And as Guillermo says, that won't help us as new instances are needed
>> > > to scale.  There could be a fee for paying accounts to get those
>> > > special startup requests, and I also don't know what makes sense for a
>> > > fee there. It would also need to be able to handle more than 30
>> > > seconds, ideally it could be a task that keeps gettings called until
>> > > it returns a 200-299 status. The url for the task could be specified
>> > > in the appengine-web.xml.
>> >
>> > > G
>> >
>> > > --
>> > > 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> unsubscr...@googlegroups.com>
>> > > .
>> > > For more options, visit this group at
>> > >http://groups.google.com/group/google-appengine-java?hl=en.
>> >
>> > --
>> > Ikai Lan
>> > Developer Programs Engineer, Google App Enginehttp://
>> googleappengine.blogspot.com|http://twitter.com/app_engine
>>
>> --
>> 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.
>>
>>
>
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> http://googleappengine.blogspot.com | http://twitter.com/app_engine
>
> --
> 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.
>



-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



Re: [appengine-java] Re: Objectify - Twig - SimpleDS articles

2010-03-29 Thread Guillermo Schwarz
One question: Why didn't you consider jiql?

On Mon, Mar 29, 2010 at 1:04 PM, Blake  wrote:

> +1
>
> On Mar 29, 4:03 am, Andreas Borglin  wrote:
> > Hi all.
> >
> > I recently decided to migrate away from JDO to one of the third party
> > datastore frameworks. At first I had only heard about objectify, but
> > after some further digging I  found out about 5 other frameworks as
> > well (Twig, SimpleDS, siena, slim3, cloud2db).
> >
> > I was only interested in simple wrapper frameworks that acted as a
> > convenience layer above the AppEngine low-level API. I _want_ the
> > framework to expose the true nature of the datastore, but at the same
> > time relieve the developer of the tedious tasks that's involved when
> > working with the low-level API directly. It is much easier to work
> > with the AppEngine datastore when its concepts, features, constraints
> > and limitations are exposed directly. You can read more about the
> > reasons for this in the article.
> >
> > This left me with objectify, Twig and SimpleDS. (siena and cloud2db
> > are multi-platform and slim3 is more than just a datastore framework)
> >
> > I spent some time researching these when I got the idea to write an
> > article about them. I contacted the authors for each framework and
> > asked if they would be interested in participating. Passionate as they
> > are, they agreed :-). Thanks to Jeff Schnitzer (objectify), John
> > Patterson (Twig) and Ignacio Coloma (SimpleDS) for this.
> >
> > The goal is to publish two articles; one interview with the authors,
> > and one where I solve some typical scenario with each framework.
> > The interview article has now been published and can be found athttp://
> borglin.net/gwt-project/?page_id=604.
> > The code example article will be posted sometime in the upcoming two
> > weeks.
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



[appengine-java] Re: Could not open the requested socket: Address already in use: bind

2010-03-26 Thread Guillermo Schwarz
It seems to me that the problem is that after I run "ant runserver"
and I kill the running process using ctrl-c, what I kill is ant but
jetty keeps running. Actually I can still connect to the server and
perform HTTP requests.

What I would like is a way to tell ant that when it is killed, it will
also kill jetty. A workaround is to find the offending process and
kill it, which in Windows XP is like this:

1. netstat -ao | grep 8080
  TCPpc-icanales:8080   pc-icanales:0  LISTENING
3932

This prints out a process number at the end.
2. taskkill /pid 3932

Cheers,
Guillermo.

On 26 mar, 15:55, nicolas melendez  wrote:
> you have the  ports in used by another application or your app engine
> development server is already working.
> NM
>
> On Fri, Mar 26, 2010 at 4:51 PM, Guillermo Schwarz <
>
> guillermo.schw...@gmail.com> wrote:
> > The first time I run the local dev server, it works fine. I press ctrl-
> > c and then I always get:
>
> >     [java]
> >     [java] 
> >     [java] Could not open the requested socket: Address already in
> > use: bind
> >     [java] Try overriding --address and/or --port.
>
> > Any solution, besides changing the port every time I restart the
> > server?
>
> > --
> > 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.

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



[appengine-java] Could not open the requested socket: Address already in use: bind

2010-03-26 Thread Guillermo Schwarz
The first time I run the local dev server, it works fine. I press ctrl-
c and then I always get:

 [java]
 [java] 
 [java] Could not open the requested socket: Address already in
use: bind
 [java] Try overriding --address and/or --port.

Any solution, besides changing the port every time I restart the
server?

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



Re: [appengine-java] Re: Why should app startup times be a problem.

2010-03-26 Thread Guillermo Schwarz
I think what gholler means is that when a SECOND instance is being started
up because of too much traffic, "in order to serve you better", what
actually happens is that the client sees the startup time.

Therefore keeping the first instance "warm" would serve no purpose.

The way I see gholler´s proposal, whenever GAE decides to load a second
instance, it should do so in the background, using the first instance to
resolve requests until the second instance is ready. This way clients would
not wait 15 seconds for the instance to load.

Does it make sense?

On Fri, Mar 26, 2010 at 8:38 AM, James  wrote:

> One of the proposed solutions here (and now officially on the roadmap
> - wooo!) is the ability to pay a fee to keep your JVM "warm" and
> reduce the currently-frequent occurrences of startup.
>
> See
> http://groups.google.com/group/google-appengine-java/msg/dafc502f0957c58a
> for an overview of this and similar issues.
>
>
>
> On Mar 25, 5:29 pm, gholler  wrote:
> > When GAE is load balancing your app, and it decides to start up a new
> > instance, why are they sending a client request as the first hit to
> > your app?  Unless your app is trivial, you're going to have some
> > startup time. It's not a good job of load balancing if requests are
> > sent to an instance that isn't even started yet.  This is killing our
> > app.  The load balancer should get an HTTP 200 back from our instance
> > before sending any real traffic that way.
> >
> > Am I off-base here? Is anyone else deploying an app with a rich client
> > and a datastore back-end where this isn't a problem? I couldn't find
> > anyone at the Server Side Java Symposium last week that was deploying
> > to GAE.
> >
> > G
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



[appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-24 Thread Guillermo Schwarz
It makes sense because web server apps are staless anyway, so what
would be the point of storing the state?

The only problem would be that Spring apps take so long to start up.
Anyway, I think the problem is something else, because when loaded the
application is very fast and I'm not using Spring or any other thingy
that could cause the application to use more than a sec to load.

Still the app sometimes takes up to 15 secs to load.

Cheers,
Guillermo.

On 24 mar, 17:08, Jeff Schnitzer  wrote:

> When (re-)loading our apps, we see the full startup process; appengine
> doesn't appear to serialize them to disk the way your laptop might go
> in and out of hibernation.
>
> I suspect the "hot server" theory is more likely.
>
> 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.



[appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-24 Thread Guillermo Schwarz
Dear all,

I've found this in the FAQ: 
http://code.google.com/intl/en/appengine/kb/java.html#Can_I_Pay_To_Reserve_My_JVM

"Can I pay to keep a JVM reserved for my application?

We've seen this request from some developers with low-traffic
applications who'd like to reduce the percentage of loading requests
they receive. Although we have many improvements in the pipeline to
improve loading request performance, we'd like to gauge the general
interest in this feature. If you'd like to be able to reserve a JVM at
a price, please star this issue:

http://code.google.com/p/googleappengine/issues/detail?id=2456.

If there's a particular pricing scheme you're interested in, let us
know."

Cheers,
Guillermo.

On 22 mar, 10:21, Guillermo Schwarz 
wrote:
> > My wild guess is that Google still has some work to do in terms of balancing
> > the load and preventing poorly written code in one app from causing pain for
> > other apps.
>
> Not really. The load balacer is working fine. When the application is
> loaded it is incredibly fast, so the load balancer must be working
> right. The problem is when the app is being loaded.
>
> In order to load the app, a kind of core file must be read from disk
> in order to represent the app state in RAM. That process takes too
> long (used to be up to 3 secs, now it is up to 12 seconds AFAIK)
> because:
>
> 1. Some applications can't be unloaded at all (they are using the
> queue to ping themselves) which leaves less free RAM. When apps ping
> themselves GAE shouldn´t take those pings into account in order to
> free some memory.
> 2. The disk reading takes a lot of time. Probably this shouldn't take
> longer than 500 ms. Let me explain. Even if the war file is huge, it
> can be divided in multiple disks and loaded very fast. Probably using
> SSDs would speed things up a bit.
>
> I haven't seen the logs of GAE (not of the apps but of GAE itself) but
> I guess one of those problems is consuming most of the time.
>
> Cheers,
> Guillermo.
>
> On 22 mar, 09:30, "James Koch"  wrote:
>
> > Jake,
>
> > I don't know enough about the GAE internals to do anything more than
> > speculate on root causes and interactions between the symptoms I've seen.
> > Unfortunately Google staff have their lips sealed.  Don Schwartz engaged
> > with me for a few hours, asked me some questions, then went silent for two
> > weeks now and hasn't responded to my follow-up.
>
> > My wild guess is that Google still has some work to do in terms of balancing
> > the load and preventing poorly written code in one app from causing pain for
> > other apps.
>
> > James
>
> > -Original Message-
> > From: google-appengine-java@googlegroups.com
>
> > [mailto:google-appengine-j...@googlegroups.com] On Behalf Of Jake
> > Sent: Friday, March 19, 2010 8:56 AM
> > To: Google App Engine for Java
> > Subject: [appengine-java] Re: App instance recycling and response times - is
> > there solution?
>
> > Hey James,
>
> > Also thanks for the clarification.  It hadn't occurred to me that what
> > appeared to be frequent restarts could be an additional JVM.  I'm
> > still not entirely familiar with that concept, but I get the basic
> > idea that requests served to the same client may not always come from
> > the same instance of my application.  As the only traffic I've seen
> > is...me...I just assumed it was all one instance.
>
> > Anyways, are issues #1-4 really linked together?  I'm less concerned
> > about slow startup than constant startup.  Also, while I haven't read
> > the ENTIRE thing, Issue #2456 talks about paying to keep a warm JVM,
> > which I'm not interested in...  I don't mind a 6-10 (or 15 second)
> > delay on the first request in, say, the span of an hour.  I just mind
> > it when it's every single request.
>
> > Jake
>
> > On Mar 18, 1:44 pm, "James Koch"  wrote:
> > > In my short time using GAE I've seen several issues discussed under the
> > > label "response times".  The lines between these issues are fuzzy, and we
> > > aren't all talking about "response times" using the same semantics.  As an
> > > example, Jake, you might not be seeing frequent restarts, you could also
> > be
> > > seeing spinup of additional JVMs (even though you're low-traffic like me).
>
> > > Maybe enumerating them will help us all pull in the same direction?  Here
> > > are the issues I've seen mentioned:
>
> > > 1 - Slow JVM startup speed (5-7s for something 

[appengine-java] Re: App instance recycling and response times - is there solution?

2010-03-22 Thread Guillermo Schwarz
> My wild guess is that Google still has some work to do in terms of balancing
> the load and preventing poorly written code in one app from causing pain for
> other apps.

Not really. The load balacer is working fine. When the application is
loaded it is incredibly fast, so the load balancer must be working
right. The problem is when the app is being loaded.

In order to load the app, a kind of core file must be read from disk
in order to represent the app state in RAM. That process takes too
long (used to be up to 3 secs, now it is up to 12 seconds AFAIK)
because:

1. Some applications can't be unloaded at all (they are using the
queue to ping themselves) which leaves less free RAM. When apps ping
themselves GAE shouldn´t take those pings into account in order to
free some memory.
2. The disk reading takes a lot of time. Probably this shouldn't take
longer than 500 ms. Let me explain. Even if the war file is huge, it
can be divided in multiple disks and loaded very fast. Probably using
SSDs would speed things up a bit.

I haven't seen the logs of GAE (not of the apps but of GAE itself) but
I guess one of those problems is consuming most of the time.

Cheers,
Guillermo.

On 22 mar, 09:30, "James Koch"  wrote:
> Jake,
>
> I don't know enough about the GAE internals to do anything more than
> speculate on root causes and interactions between the symptoms I've seen.
> Unfortunately Google staff have their lips sealed.  Don Schwartz engaged
> with me for a few hours, asked me some questions, then went silent for two
> weeks now and hasn't responded to my follow-up.
>
> My wild guess is that Google still has some work to do in terms of balancing
> the load and preventing poorly written code in one app from causing pain for
> other apps.
>
> James
>
> -Original Message-
> From: google-appengine-java@googlegroups.com
>
> [mailto:google-appengine-j...@googlegroups.com] On Behalf Of Jake
> Sent: Friday, March 19, 2010 8:56 AM
> To: Google App Engine for Java
> Subject: [appengine-java] Re: App instance recycling and response times - is
> there solution?
>
> Hey James,
>
> Also thanks for the clarification.  It hadn't occurred to me that what
> appeared to be frequent restarts could be an additional JVM.  I'm
> still not entirely familiar with that concept, but I get the basic
> idea that requests served to the same client may not always come from
> the same instance of my application.  As the only traffic I've seen
> is...me...I just assumed it was all one instance.
>
> Anyways, are issues #1-4 really linked together?  I'm less concerned
> about slow startup than constant startup.  Also, while I haven't read
> the ENTIRE thing, Issue #2456 talks about paying to keep a warm JVM,
> which I'm not interested in...  I don't mind a 6-10 (or 15 second)
> delay on the first request in, say, the span of an hour.  I just mind
> it when it's every single request.
>
> Jake
>
> On Mar 18, 1:44 pm, "James Koch"  wrote:
> > In my short time using GAE I've seen several issues discussed under the
> > label "response times".  The lines between these issues are fuzzy, and we
> > aren't all talking about "response times" using the same semantics.  As an
> > example, Jake, you might not be seeing frequent restarts, you could also
> be
> > seeing spinup of additional JVMs (even though you're low-traffic like me).
>
> > Maybe enumerating them will help us all pull in the same direction?  Here
> > are the issues I've seen mentioned:
>
> > 1 - Slow JVM startup speed (5-7s for something that uses JDO and no other
> > frameworks)
>
> > 2 - Not affecting me personally, but startup cost of other frameworks
> > (Struts, etc.) has definitely been mentioned.
>
> > 3 - Frequent JVM restarts (after 1 min of inactivity) - This interval
> feels
> > too short to me, as a small app developer.
>
> > 4 - Frequent "server overload" caused by OTHER apps, which cause a request
> > to be re-routed to a new JVM instead of a warm one, thus incurring the
> > startup penalty regardless of user activity levels.
>
> > 5 - "Request was aborted after waiting too long" on normally fast-loading
> > pages.  Presumably similar to #3 (caused by "server overload" from OTHER
> > apps) but something else is awry here as these occurs often occur after
> only
> > 10s, not the expected 30s.  If you've got a 7s JVM spinup, that doesn't
> > leave you a lot of wiggle room.  Also, this only shows up in logs as a
> > "warning".  IMO, if a user can't receive a response, that's an "error".  
>
> > Issue tracking:
> > #5 covered by Issue #2396.
> > #1-4 all munged together in massive Issues #2456
>
> > James
>
> > -Original Message-
> > From: google-appengine-java@googlegroups.com
>
> > [mailto:google-appengine-j...@googlegroups.com] On Behalf Of Jake
> > Sent: Thursday, March 18, 2010 12:56 PM
> > To: Google App Engine for Java
> > Subject: [appengine-java] Re: App instance recycling and response times -
> is
> > there solution?
>
> > Hey,
>
> > So, I've noticed seve

Re: [appengine-java] Google App Engine error

2010-03-18 Thread Guillermo Schwarz

Svenska?

Saludos,
Guillermo Schwarz.

El 17-03-2010, a las 6:57, Olifant   
escribió:



Ik heb een probleem met de Google App Engine.
Lokaal draait het prima, maar als ik mijn project naar de Google App
Engine server heb gedeployed en het daar wil bekijken, gaat het
verkeerd.

Het gaat om de volgende foutmelding:

/index.jsp
java.lang.ClassCastException: java.lang.String cannot be cast to
java.lang.Boolean
   at
com.google.appengine.runtime.Request.process-45e9281fdbb0acf1 
(Request.java)

   at
org.datanucleus.store.appengine.DatastoreFieldManager.fetchBooleanField( 
DatastoreFieldManager.java:

453)
   at
org.datanucleus.state.AbstractStateManager.replacingBooleanField 
(AbstractStateManager.java:

1052)
   at project.Project.jdoReplaceField(Project.java)
   at project.Project.jdoReplaceFields(Project.java)
   at
org.datanucleus.state.JDOStateManagerImpl.replaceFields 
(JDOStateManagerImpl.java:

2772)
   at
org.datanucleus.state.JDOStateManagerImpl.replaceFields 
(JDOStateManagerImpl.java:

2791)
   at
org.datanucleus.store.appengine.DatastorePersistenceHandler.fetchObject( 
DatastorePersistenceHandler.java:

461)
   at
org.datanucleus.store.appengine.query.DatastoreQuery.entityToPojo 
(DatastoreQuery.java:

545)
   at
org.datanucleus.store.appengine.query.DatastoreQuery.entityToPojo 
(DatastoreQuery.java:

500)
   at org.datanucleus.store.appengine.query.DatastoreQuery.access
$300(DatastoreQuery.java:108)
   at org.datanucleus.store.appengine.query.DatastoreQuery
$6.apply(DatastoreQuery.java:618)
   at org.datanucleus.store.appengine.query.DatastoreQuery
$6.apply(DatastoreQuery.java:610)
   at
org.datanucleus.store.appengine.query.LazyResult.resolveNext 
(LazyResult.java:

94)
   at org.datanucleus.store.appengine.query.LazyResult
$LazyAbstractListIterator.computeNext(LazyResult.java:215)
   at
org.datanucleus.store.appengine.query.AbstractIterator.tryToComputeNext( 
AbstractIterator.java:

132)
   at
org.datanucleus.store.appengine.query.AbstractIterator.hasNext 
(AbstractIterator.java:

127)
   at org.datanucleus.store.appengine.query.LazyResult
$AbstractListIterator.hasNext(LazyResult.java:169)
   at project.GetProject.getProjectsDashboard(GetProject.java:33)
   at org.apache.jsp.index_jsp._jspService(index_jsp.java:52)
   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java: 
94)

   at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
   at org.mortbay.jetty.servlet.ServletHolder.handle 
(ServletHolder.java:

487)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1093)
   at
cwipstoremoteuserfilter.filter.CwipsToRemoteUserFilter.doFilter 
(CwipsToRemoteUserFilter.java:

78)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
   at cwipsclient.cas.client.filter.CASFilter.doFilter(CASFilter.java:
79)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
   at
com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter 
(ParseBlobUploadFilter.java:

97)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
   at
com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter 
(SaveSessionFilter.java:

35)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
   at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter 
(TransactionCleanupFilter.java:

43)
   at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
   at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
360)
   at
org.mortbay.jetty.security.SecurityHandler.handle 
(SecurityHandler.java:

216)
   at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
   at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
712)
   at org.mortbay.jetty.webapp.WebAppContext.handle 
(WebAppContext.java:

405)
   at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle 
(AppVersionHandlerMap.java:

238)
   at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
   at org.mortbay.jetty.Server.handle(Server.java:313)
   at org.mortbay.jetty.HttpConnection.handleRequest 
(HttpConnection.java:

506)
   at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:830)
   at
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable 
(RpcRequestParser.java:

76)
   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
   at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest( 
JettyServletEngineAdapter.java:

135)
   at
com.google.apphosting.runtime.JavaRuntime.handleRequest 
(JavaRuntime.java:

235)
   at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:5485)
   at com.google.apphosting.base.RuntimePb$EvaluationRuntime
$6.handleBlockingRequest(RuntimePb.java:5483)
   at

[appengine-java] Re: Best practices for datastore and JDO?

2010-03-05 Thread Guillermo Schwarz
Sandeep,

Have you run any TPC benchmarks against Cloud2db?

Cheers,
Guillermo.

On 5 mar, 16:07, Sandeep Sathaye  wrote:
> Hi Jacob,
>
> We just released a product called Cloud2db which could fit very well in your
> architecture. Here are some details.
>
> Cloud2db Server provides a standards-based abstraction layer over Google
> Datastore (Bigtable).  This product provides you with performance and
> scalability of GAE along with structure, standards and interoperability of
> RDBMS, SQL and JDBC.
>
> With Cloud2db, you will be able to manage your data on Google Datastore by
> using established concepts of RDBMS, SQL and JDBC, and thereby preserving
> your existing investments in tools, technologies, frameworks and skills.
>
> Here are Cloud2db features:
>
>    - Manage data on Google Datastore using familiar concepts of RDBMD, SQL
>       - Referential integrity (Primary Keys, Foreign Keys)
>       - Role Based Security
>       - Joins (Inner Join, Left Outer Join, Theta Join, Cross Join)
>       - Subqueries (Exists, Not Exists, In)
>       - DDL & DML
>       - Transactions
>       - ANSI SQL stored functions
>       - Views
>       - BLOB and CLOB support
>
>    - Use any JDBC compliant tools and frameworks in the market to interact
>    with the Google Datastore. For example.
>       - Squirrel SQL (database management)
>       - Power Architect (data modeling)
>       - Jasper Reports (reporting)
>       - Hibernate (Object To Relational mapping)
>       - All JDBC compliant tools
>
>    - Port exiting RDBMS instances to Google Datastore
>
> Please visit our websitehttp://www.cloud2db.comand try out the free trial
> version of our product by registering 
> athttp://cloud2db.appspot.com/website/registration.html. Please visit google
> group Cloud2db  to share your
> feedback and thoughts.
>
> Sincerely,
>
> Sandeep Sathaye
> Founder and Chief Architect
> Cloud2db
>
> On Fri, Mar 5, 2010 at 7:54 AM, vennervald wrote:
>
> > Hi Guys
>
> > We have a small application running on JBoss, Seam, Hibernate and
> > PostgreSQL that we are thinking about moving to GAE/J.
> > To test the datastore we uploaded our data 1-1 so all our tables from
> > Postgres were represented as entity types in the datastore with the
> > entities relating to eachother through their keys.
> > As a proof of concept of the performance of the datastore, we did an
> > implemented one of our heaviest reports by joining 6 entities
> > together. And the performance proved to be really bad. Infact we
> > received the deadline exception before we got to join all the
> > entities. From the platform we are running on now, this could be done
> > in less than a second.
> > This doesn't tell me that Google datastore is worthless. It tells me,
> > that I'm doing something wrong, and that I need to think differently
> > about the data structures to make it perform on GAE.
> > I've been looking around and I can't seem to find really good sources
> > on datastore/JDO best practises.
> > Does anybody have any good resources on this toppic?
> > I would really apriciate your help.
>
> > /Jacob :)
>
> > --
> > 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.

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



[appengine-java] Re: Threads in Java

2010-03-05 Thread Guillermo Schwarz
The idea is not to create any threads. Why would you want to do that?

The same happens in J2EE (web container and EJB container), you are
not allowed to create threads.

Threads are used by the web container in order to attend several
requests at once (in practice the same could be done using NIO), but
user applications are not allowed to create, destroy or otherwise even
being aware of threads.

Again, why do you want to use threads?

On 5 mar, 13:54, Marios  wrote:
> Hello there,
> I've just read the documentation on Google App Engine and I realised
> that you cannot create any threads in an application. You can only use
> the main one which is created automatically with any runnable java
> program.
> I am wondering if there is the possibility to create threads using the
> low-level API datastore. I've searched the internet and didn't find an
> answer. If someone tried to create a new thread or knows for sure if
> you can create one, please reply to this message.
> Thank you very much,
>   Marios.

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



Re: [appengine-java] Re: Made a Facebook Page For App Engine For Java Issues

2010-03-04 Thread Guillermo Schwarz
LOL

I just saw an application which loaded very fast, but the dynamic content
took almost 8 secs to load. It wasn't pretty, you are correct about that.

I wonder if the datastore API calls were correctly done, because my app
takes 8 secs to load the very first time, and from then on it is pretty
fast.

Cheers,
Guillermo.

On Thu, Mar 4, 2010 at 5:47 PM, Locke  wrote:

> On Mar 3, 2:05 pm, Guillermo Schwarz 
> wrote:
> >  landing page
>
> This is a solution to Java load latency like getting drunk until you
> pass out is a solution miserable loneliness.
>
> Hopefully Google will provide us with a new metaphorical girlfriend
> before our livers go out...
>
> (bad analogy of the day award goes to...)
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



[appengine-java] Re: Made a Facebook Page For App Engine For Java Issues

2010-03-03 Thread Guillermo Schwarz
So far I think GAE/J has been pretty responsive to most of the defects
found and request for new functionality/features.

For example you can host .com landing page somewhere so that
it loads an image from .appspot.com and therefore loads your
app. This way your users would see your app responsive all the time.

On 3 mar, 15:33, Robert Lancer  wrote:
> Haha, I agree. But google groups lacks the key ability to post
> pictures videos... Also a large number of fans on a group titled
> Google Please Fix App Engine For Java  would send a loud message.
>
> On Mar 3, 1:11 pm, Corby  wrote:
>
> > Somehow, I suspect that the continual, specific feedback on this group
> > is doing more to effect change in GAE/J than your MySpace band or
> > whatever.
>
> > Besides, your page sucks. Not enough hot ladies.

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



[appengine-java] Re: Can pm.makePersistentAll() help me write 12,000 objects?

2010-02-25 Thread Guillermo Schwarz
I think there is a way to grab big chunks of oprations, put them in a
queue to be done asynchronously and that would be it.

My take would be that using proxies it would be easy to queue any long
operation transparently. I've done that with EJBs in the past, I don't
see the reason a QueingProxy couldn't be written.

Cheers,
Guillermo.

On 25 feb, 17:02, Jeff Schnitzer  wrote:
> I don't think the original poster had a requirement for synchronous
> writes; he just didn't want to do the writes asynchronously because it
> involved a lot more code.
>
> I'm also perfectly fine with asynchronous writes and a very lax
> interpretation of consistency.  I don't even mind writing extra code.
> The thing I worry about is the feasibility of a heavy write load and
> the total cost of it.
>
> Unfortunately I really can't describe in detail what I want to do (I
> normally laugh at this kind of secrecy, but in this case it's
> warranted).  For the game mechanic I'm thinking about, the
> average-case scenario is not very far from the worst-case scenario.
> Just a little detail:
>
>  * There is no requirement that all of a user's friends must be
> playing the game or even have installed the app to receive points.
> Welcome to the world of social gaming, you can play without even
> without knowing it!
>  * There are *lots* of FB users that have > 1k friends.  Probably
> millions.  More active FB users are likely to have more friends... and
> more likely to use my app.
>  * Points can be assigned to multiple layers, so the # of updates is
> (layers * friends).
>  * Tens of thousands of people play this "game". It could become
> hundreds of thousands very soon.  If I'm lucky, millions.
>
> I would love to implement this game mechanic, but I just can't.
> Asynchronous or not, it's *way* too expensive on appengine.  When it
> comes time to implement this feature (and it's going to come, I can
> see the winds blowing), I'm probably going to have to move my scoring
> system out of appengine.  Which is a bit ironic, because one of the
> main advantages of appengine is scalability.
>
> I would *love* to see some sort of super-super-lax and
> super-super-cheap consistency option for BigTable.  Or even an
> alternative key/value datastore that simply works like a persistent
> version of memcached.  Something that would let me sustain 10k
> writes/sec without bankrupting me.
>
> Jeff
>
> On Thu, Feb 25, 2010 at 11:16 AM, Ikai L (Google)  wrote:
>
> > Jeff, point taken, but the original poster has been asking for three
> > different requirements:
> > - requirement to do all writes synchronously
> > - sub-some-couple-hundred-millisecond writes
> > - 12k entities being written
>
> > This just won't scale well if it's common. Messaging users can be done
> > asynchronously, as can the portion crediting friends. I understand the
> > argument that you may want to do this during the lifecycle of the request so
> > the original user gets some kind of feedback backed by a strongly consistent
> > datastore, but this just isn't done. Feedback is usually faked out
> > optimistically, assuming that the writes will all be successful with some
> > cached layer being the only part of the stack being updated inside the
> > request. Thinking of worse case scenarios is a good thought exercise, but
> > it's also a bit too optimistic to design a product assuming all of a Users'
> > friends will play the game and engineer to meet that unrealistic
> > expectation. What are the standard and slightly non-standard use cases? I'd
> > probably look at a solution where I can store the data somewhere associated
> > with the original user for any users not already in the datastore, then
> > retrieve and generate a score for any of that User's friends on first
> > access. Facebook's developer admin tool has some pretty good statistics such
> > as bounce rate, block rate and invitation accept rate that can be used to
> > tune this design.
> > Slightly off topic, but we've been asked before if it was possible to
> > provide different levels of datastore consistency. In some cases I can see
> > the tradeoffs making sense.
>
> > On Wed, Feb 24, 2010 at 5:52 PM, Jeff Schnitzer  wrote:
>
> >> On Wed, Feb 24, 2010 at 1:06 PM, Ikai L (Google) 
> >> wrote:
> >> > My point wasn't necessarily that it wasn't possible. makePersistentAll
> >> > does
> >> > use a batch write, and there are definitely sites that can do 12,000+
> >> > writes
> >> > a second (and well above that), but I don't know of any that will
> >> > attempt to
> >> > do that in a single request. While it's an interesting thought exercise
> >> > to
> >> > see if BigTable can do it through App Engine's interface (hint: it can,
> >> > globally, easily), I can't think of a single use case for a site to need
> >> > to
> >> > do this all the time and with the sub-second requirement. I think it's
> >> > reasonable to ask why this design exists and why the requirements exist
> >> > and
> >> > rethink one or the other.
>
> 

[appengine-java] Re: Can pm.makePersistentAll() help me write 12,000 objects?

2010-02-24 Thread Guillermo Schwarz
I think we can safely assume that the programmer was trying to speed
up things a little by writing 12 thousand objects in a single
operation.

Now if that gets to be faster or slower than writing each object
separately, it is a matter of the internal implementation of the data
store. I prefer to do no hacks, but OTOH it is better sometimes to be
clear bout what you want (API wise).

The point here is that the programmer wants to insert 15 thousand
objects in a second, you seem to imply that is possible.
"While it's an interesting thought exercise to see if BigTable can do
it through App Engine's interface (hint: it can, globally, easily)".

I rest my case ;-)

Do we need to do anything to test that? Is there anything we could do
to help?

Cheers,
Guillermo.

On 24 feb, 18:06, "Ikai L (Google)"  wrote:
> Simple key-only writes can definitely do it, but there's a few places where
> you can introduce overhead:
>
> - serialization
> - network I/O
> - indexes
>
> My point wasn't necessarily that it wasn't possible. makePersistentAll does
> use a batch write, and there are definitely sites that can do 12,000+ writes
> a second (and well above that), but I don't know of any that will attempt to
> do that in a single request. While it's an interesting thought exercise to
> see if BigTable can do it through App Engine's interface (hint: it can,
> globally, easily), I can't think of a single use case for a site to need to
> do this all the time and with the sub-second requirement. I think it's
> reasonable to ask why this design exists and why the requirements exist and
> rethink one or the other.
>
> On Wed, Feb 24, 2010 at 12:35 PM, Guillermo Schwarz <
>
>
>
> guillermo.schw...@gmail.com> wrote:
> > Ikai,
>
> > Maybe you are right. Maybe not. I'm not an expert in datastore
> > internals, but here is my point of view.
>
> > This paper claims that Berkeley DB Java edition can insert about
> > 15,000 records per second.
>
> >http://www.oracle.com/database/docs/bdb-je-architecture-whitepaper.pdf
>
> > The graphic is on page 22. The main reason they claim to be able to do
> > that is that they don't need to actually sync the write to disk, they
> > can queue the write, update in-memory data and write a log file.
> > Writing the log file is for transactional purposes and it is the only
> > write really needed.That is pretty fast.
>
> > Cheers,
> > Guillermo.
>
> > On 24 feb, 16:51, "Ikai L (Google)"  wrote:
> > > I also remember hearing (and this is not verified so don't quote me on
> > this
> > > or come after me if I'm wrong) from a friend of mine running KV stores in
> > > production that there were issues with certain distributed key/value
> > stores
> > > that actually managed to slow down as a function of the number of objects
> > in
> > > the store - and Tokyo Tyrant was on his list. A key property of scalable
> > > stores is that the opposite of this is true.
>
> > > 12,000 synchronous, serialized writes in a single sub-second request is
> > > pretty serious. I am not aware of a single website in the world that does
> > > this.
>
> > > On Wed, Feb 24, 2010 at 11:35 AM, Jeff Schnitzer  > >wrote:
>
> > > > I think this is actually an interesting question, and brings up a
> > > > discussion worth having:
>
> > > > Is datastore performance reasonable?
>
> > > > I don't want to make this a discussion of reliability, which is a
> > > > separate issue.  It just seems to me that the datastore is actually
> > > > kinda pokey, taking seconds to write a few hundred entities.  When
> > > > people benchmark Tokyo Tyrant, I hear numbers thrown around like
> > > > 22,000 writes/second sustained across 1M records:
>
> > > >http://blog.hunch.se/2009/02/28-tokyo-cabinet
>
> > > > You might argue that the theoretical scalability of BigTable's
> > > > distributed store is higher... but we're talking about two full orders
> > > > of magnitude difference.  Will I ever near the 100-google-server
> > > > equivalent load?  Could I pay for it if I did?  100 CPUs (measured)
> > > > running for 1 month is about $7,200.  Actual CPU speed is at least
> > > > twice the measured rate, so a single Tokyo Tyrant is theoretically
> > > > equivalent to almost $15,000/month of appengine hosting.  Ouch.
>
> > > > Maybe this isn't an apples to apples comparison.  Sure, there aren't
> > > > extra inde

[appengine-java] Re: Can pm.makePersistentAll() help me write 12,000 objects?

2010-02-24 Thread Guillermo Schwarz
Ikai,

Maybe you are right. Maybe not. I'm not an expert in datastore
internals, but here is my point of view.

This paper claims that Berkeley DB Java edition can insert about
15,000 records per second.

http://www.oracle.com/database/docs/bdb-je-architecture-whitepaper.pdf

The graphic is on page 22. The main reason they claim to be able to do
that is that they don't need to actually sync the write to disk, they
can queue the write, update in-memory data and write a log file.
Writing the log file is for transactional purposes and it is the only
write really needed.That is pretty fast.

Cheers,
Guillermo.

On 24 feb, 16:51, "Ikai L (Google)"  wrote:
> I also remember hearing (and this is not verified so don't quote me on this
> or come after me if I'm wrong) from a friend of mine running KV stores in
> production that there were issues with certain distributed key/value stores
> that actually managed to slow down as a function of the number of objects in
> the store - and Tokyo Tyrant was on his list. A key property of scalable
> stores is that the opposite of this is true.
>
> 12,000 synchronous, serialized writes in a single sub-second request is
> pretty serious. I am not aware of a single website in the world that does
> this.
>
> On Wed, Feb 24, 2010 at 11:35 AM, Jeff Schnitzer wrote:
>
>
>
> > I think this is actually an interesting question, and brings up a
> > discussion worth having:
>
> > Is datastore performance reasonable?
>
> > I don't want to make this a discussion of reliability, which is a
> > separate issue.  It just seems to me that the datastore is actually
> > kinda pokey, taking seconds to write a few hundred entities.  When
> > people benchmark Tokyo Tyrant, I hear numbers thrown around like
> > 22,000 writes/second sustained across 1M records:
>
> >http://blog.hunch.se/2009/02/28-tokyo-cabinet
>
> > You might argue that the theoretical scalability of BigTable's
> > distributed store is higher... but we're talking about two full orders
> > of magnitude difference.  Will I ever near the 100-google-server
> > equivalent load?  Could I pay for it if I did?  100 CPUs (measured)
> > running for 1 month is about $7,200.  Actual CPU speed is at least
> > twice the measured rate, so a single Tokyo Tyrant is theoretically
> > equivalent to almost $15,000/month of appengine hosting.  Ouch.
>
> > Maybe this isn't an apples to apples comparison.  Sure, there aren't
> > extra indexes on those Tyrant entities... but to be honest, few of my
> > entities have extra indexes.  What other factors could change this
> > analysis?
>
> > Thoughts?
>
> > BTW Tim, you may very well have quite a few indexes on your entities.
> > In JDO, nearly all single fields are indexed by default.  You must
> > explicitly add an annotation to your fields to make them unindexed.
> > With Objectify, you can declare your entity as @Indexed or @Unindexed
> > and then use the same annotation on individual fields to override the
> > default.
>
> > Jeff
>
> > On Wed, Feb 24, 2010 at 12:43 AM, Tim Cooper  wrote:
> > > I have been trying to write 12,000 objects in a single page request.
> > > These objects are all very small and the total amount of memory is not
> > > large.  There is no index on these objects - the only GQL queries I
> > > make on them are based on the primary key.
>
> > > Ikai has said:  "That is - if you have to delete or create 150
> > > persistent, indexed objects, you may want to rethink what problems you
> > > are trying to solve."
>
> > > So I have been thinking about the problems I'm trying to solve,
> > > including looking at the BuddyPoke blog and reading the GAE
> > > documentation.  I'm trying to populate the database with entries
> > > relating to high school timetables.
>
> > > * I could do the writes asynchronously, but that looks like a lot of
> > > additional effort. On my C++ app, writing the same information to my
> > > laptop drive, this happens in under a second, because the amount of
> > > data is actually quite small, but it times out on GAE.
> > > * I am using pm.makePersistentAll(), but this doesn't help.
> > > * There is no index on the objects - I access them only through the
> > > primary key.  (I'm pretty sure there's no index - but how can I
> > > confirm this via the development server dashboard?)
> > > * The objects constitute 12,000 entity groups.  I could merge them
> > > into fewer entity groups, but there's no natural groupings I could
> > > use, so it could get quite complex to introduce a contrived grouping,
> > > and also this would complicate the multi-user updating of the objects.
> > >  The AppEngine team seem to generally recommend using more entity
> > > groups, but it's difficult to integrate that advice with the contrary
> > > advice to use fewer entity groups for acceptable performance.
> > > * I'd be happy if the GAE database was < 10 times slower than a
> > > non-cloud RDBMS, but the way I'm using it, it's currently not.
>
> > > Does anyone have any advice?
>
> > >

[appengine-java] Re: solution to the Java load latency

2010-02-24 Thread Guillermo Schwarz
Ikai,

I agree wholehartedly with you.

Nevertheless, I think what Locke needs is a quick and dirty solution
before the correct one you mention is implemented (which can take a
while, because it is the correct one).

At the same time, that solution needs to not interfere with other
applications. The poll initiative using cron would be of that kind.

I suppose Locke could load a static page somewhere (I think that is
possible right now in GAE, but I'm not sure) and inside that page have
a link (let's say an image) that is hosted with the rest of the app.
This way the application would the pinged whenever a user enters the
page and everyone would be happy.

Cheers,
Guillermo.

On 24 feb, 15:29, "Ikai L (Google)"  wrote:
> The "correct" solution is to drive more traffic to your application, and we
> discourage "pinging". We're working on solutions that will reduce load times
> all around. The issue with pinging your application, as some users do, is
> that it decreases resources from the global pool and increases the amount of
> application cycling that happens. A more subtle effect of this is this
> affects our instrumentation and causes your application to be grouped in our
> reporting with applications that are seeing normal cycling - the % of your
> requests that are loading requests drops significantly, and it tells us that
> your application is fine when it is not.
>
> On Tue, Feb 23, 2010 at 1:45 PM, Guillermo Schwarz <
>
>
>
> guillermo.schw...@gmail.com> wrote:
> > Does any one have a way to test this?
>
> > I've been doing tests manually against my app and it takes between 6 to 8
> > secs to load, just the landing page.
>
> > After that, it has subsecond performance. Nice!
>
> > I've read that you can have the one app in python access the same data
> > store as another app in Java. Would that break the GAE contract?
>
> > It sure would fix this problem while GAE fix this issue.
>
> > Cheers,
> > Guillermo.
>
> > On Tue, Feb 23, 2010 at 4:44 PM, Locke  wrote:
>
> >> Some Java load times are here. When using the database, these times
> >> can be worse, of course.
>
> >>http://groups.google.com/group/google-appengine/browse_thread/thread/...
>
> >> On Feb 23, 12:23 pm, Guillermo Schwarz 
> >> wrote:
> >> > Dear all,
>
> >> > I've read some of you are having load latency issues. How much time
> >> > you have to wait for your applications to load? I ask this because I
> >> > haven't noticed any delay in my applications so I was wondering what
> >> > it could be.
>
> >> > Cheers,
> >> > Guillermo.
>
> >> --
> >> 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.
>
> > --
> > Saludos cordiales,
>
> > Guillermo Schwarz
> > Sun Certified Enterprise Architect
>
> >  --
> > 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.
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App 
> Enginehttp://googleappengine.blogspot.com|http://twitter.com/app_engine

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



[appengine-java] [OT] Re: GAE Alternatives?

2010-02-24 Thread Guillermo Schwarz
I think Sun didn't have clear ideas on what was possible and what
clients wanted. They didn't separate their business in hardware and
JavaSoft apart and that bad management decision took its toll.

Microsoft is doing the same mistake: Is it a toy maker or a hardware
maker or an operating system maker or a service provider like Google?

I find today GAE is similar to the old Apple II in 1975. It took 5
years for IBM to catch up with the IBM PC, haven't it created a more
powerful system and open sourced its design, we would all be using
Motorola's CPUs...

The main advantage GAE provides now is potentially unlimited
scalability (only limited by hardware). Since hardware is going to get
really cheap in the following decade, with SSDs and multicore CPUs
everywhere, customers will not want to continue managing thousands of
computers by hand, but let cloud companies provide almost free
services like this.

Now Java belongs to Oracle, so I bet Oracle will want to produce some
competng product/service...without ruining the DB market it already
has...

On 24 feb, 13:57, Paul Hammant  wrote:
> Nope, but one *imagines* that others (Spring/VMWare, JBoss/RedHat,
> Oracle/Sun/Tangasol, Terracotta, Gigaspaces and Intalio/Jetty) are part way
> through delivery, or are planning, or finding partners.
>
> There's a huge attraction to the tiny resource requirement to maintain a WAR
> file deployment versus the large requirements of a EC2 style VM. Presuming
> the servlet container is shared amongst many apps of course.
>
> One wonders why Sun did not do this ten years ago.
>
> - Paul
>
> On Wed, Feb 24, 2010 at 10:39 AM, A1programmer 
> wrote:
>
> > Are there any good alternatives to Google App Engine out there?
>
> > I am finding that I cannot rely on GAE for a production quality
> > environment.
>
> > --
> > 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.

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



Re: [appengine-java] Re: solution to the Java load latency

2010-02-23 Thread Guillermo Schwarz
Does any one have a way to test this?

I've been doing tests manually against my app and it takes between 6 to 8
secs to load, just the landing page.

After that, it has subsecond performance. Nice!

I've read that you can have the one app in python access the same data store
as another app in Java. Would that break the GAE contract?

It sure would fix this problem while GAE fix this issue.

Cheers,
Guillermo.

On Tue, Feb 23, 2010 at 4:44 PM, Locke  wrote:

> Some Java load times are here. When using the database, these times
> can be worse, of course.
>
>
> http://groups.google.com/group/google-appengine/browse_thread/thread/11b2f2b425e10e38/c8564e0eb61de1ed?lnk=gst&q=benchmarks#c8564e0eb61de1ed
>
>
> On Feb 23, 12:23 pm, Guillermo Schwarz 
> wrote:
> > Dear all,
> >
> > I've read some of you are having load latency issues. How much time
> > you have to wait for your applications to load? I ask this because I
> > haven't noticed any delay in my applications so I was wondering what
> > it could be.
> >
> > Cheers,
> > Guillermo.
>
> --
> 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.
>
>


-- 
Saludos cordiales,

Guillermo Schwarz
Sun Certified Enterprise Architect

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



[appengine-java] solution to the Java load latency

2010-02-23 Thread Guillermo Schwarz
Dear all,

I've read some of you are having load latency issues. How much time
you have to wait for your applications to load? I ask this because I
haven't noticed any delay in my applications so I was wondering what
it could be.

Cheers,
Guillermo.

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



[appengine-java] Re: My app, out of the blue, doesn't exist anymore on app engine servers

2010-02-23 Thread Guillermo Schwarz
It is working now. It looks nice, btw, although it says it is using an
older Google Maps API.

On 23 feb, 12:55, vmaatta  wrote:
> Without knowing anything about the situation my suggestion would be
> to:
>
> 1) Stop trying to deploy.
> 2) Wait for GAE team to comment.
>
> It has probably went through when deployed even though it gave errors
> and didn't show up. Something has gone bonkers and maybe "multiple
> deployments" are now being reported as multiple different versions or
> something. Anyways.. better just wait for staff comment.
>
> On Feb 23, 2:42 am, Ivan Pardo  wrote:
>
> >http://truxmap.appspot.com/
>
> > I can access the admin panel and the cron jobs show that it stopped
> > working at 4:03.  I wasn't anywhere near my PC and hadn't deployed
> > since last night.  For some reason, the app is simply dead -- I cant
> > access any part of it.  Last night I tried deploying 3 or 4 times but
> > I got a 503 error every time so I gave up.  Since I noticed that my
> > site is now dead, I've tried deploying twice and I've gotten a 503
> > error once and a 403 (too many versions... i just deleted 1 version
> > and i only have 3 versions anyway).  None of this makes any sense to
> > me and is incredibly frustrating.

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