Re: [appengine-java] Setting Namespace for an entire Request

2011-05-14 Thread Aswath Satrasala
Namespace-api is set normally in a Servlet Filter, which is normally the
beginning point for most application HttpRequests.  This means, there is a
request coming in, it is serviced by a single-thread.  Namespace-api is
threadsafe and the namespace is put in the threadlocal, and hence, the same
namespace is available during the complete HttpRequest serviced by that
thread.

-Aswath

On Fri, May 13, 2011 at 9:13 PM, mpire
sebastian.wennin...@googlemail.comwrote:

 Hi!

 I'm trying to use the Namespace-API to build a multi-tenant app.
 Therefore i have defined a filter that sets the Namespace for each request
 regarding to the User making the request.
 However, if there's a new Request before the current request finishes its
 datastore-operation, the namespace would be overwritten by the new request
 and the current operation would have an incorrect namespace.
 I could also set the namespace before each datastore operation, but the
 problem would be the same.If another request overwrites the namespace before
 the operation is finished, the data in the database will be messed.
 Is there a way to set the namespace for an entire request?
 Or should i try to build some kind of Mutex around the NamespaceManager?

 Any suggestions to solve this problem are welcome :)

 Thx in advance

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



[appengine-java] HTTP headers and protocol version not consistent on client and google app engine

2011-05-14 Thread Vageesh Dwivedi
I am trying to access http header Accept-Encoding and http protocol version 
on google app engine. But Accept-Encoding never reaches while protocol 
version is always 1.1 (even when client side shows HTTP/1.0). Am i missing 
some sort of setting in my application?

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



[appengine-java] Re: Object visibility between threads (running requests)

2011-05-14 Thread bzorg
Maybe you could use the AppEngine cache? You have the guarantee that
objects in cache are replicated across instances. However you need to
be extra careful in your locking mechanism as Object.wait() and
Object.notify() obviously won't work. I guess some sort of polling can
do it, if you don't need extra reactivity.

Afterthought: I'm wondering if cache object modification is seen
immediately on other instance, or if there is some kind of
transactional mode within a request, that makes the cache appear
consistent for a whole request. You have to check that too, I guess.

--Laurent

On May 13, 7:34 pm, Samuel Erdtman sam...@erdtman.se wrote:
 That is true, I just want to know that it is by design and not because I
 have missed to do something.

 And the thing is that i can see the objects and that there is difference in
 visibility after the first thread returns. does this mean that objects are
 synchronized between data centers between request.

 I´ll see if i figure something out

 //Samuel

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



[appengine-java] stderr: SystemId Unknown; Line #57; Column #31; Failed calling setMethod method

2011-05-14 Thread Daniel
My log is full of this weird stderr message

[vedmack/1.350345457568997204].stderr: SystemId Unknown; Line #57;
Column #31; Failed calling setMethod method

Its an Info message...

any ideas to what can cause this?

Thanks ahead!


Daniel,

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



[appengine-java] Re: stderr: SystemId Unknown; Line #57; Column #31; Failed calling setMethod method

2011-05-14 Thread Didier Durand
Hi,

Look at
http://groups.google.com/group/google-appengine-java/browse_thread/thread/f6f40411a076aa30/1b0f2adb19ce0997?lnk=gstq=Failed+calling+setMethod+method+#1b0f2adb19ce0997

At the very bottom, you may have the answer to you question

regards

didier

On May 14, 11:25 am, Daniel vedm...@gmail.com wrote:
 My log is full of this weird stderr message

 [vedmack/1.350345457568997204].stderr: SystemId Unknown; Line #57;
 Column #31; Failed calling setMethod method

 Its an Info message...

 any ideas to what can cause this?

 Thanks ahead!

 Daniel,

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



[appengine-java] Re: Backends.xml ERROR when deploying

2011-05-14 Thread RLdev
I put that in my xml file :

backends
  backend name=tastBackend
classb1/class
instances1/instances
  /backend
/backends

and i still get the same error when try to deploy.
Something looks wrong in this xml?

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



[appengine-java] Facebook Login integration with java appengine

2011-05-14 Thread Ravi Sharma
Hi,
I am using http://code.google.com/p/facebook-java-api/ to login using
facebook. But unable to do so as documenttaion is not quite completed there
and posted my problem on this site but long time no response.
I am sure in this group many people must have done with their java app to
login using facebook. Could you please share your code or give me some
guidance.

Requirement:
I will be dispalying google/yahoo/facebook logo on my site and when user
click on Facebook logo it will take it to facebook page to authenticate.Once
authenticate it will call my callback url and i should be able to query
logged in user's name etc using facebook api(java).



I am sorry posting a facebook login question here, but the project it self
seems inactive and no one is responding.

Thanks in advance
Ravi.

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



[appengine-java] How To: Persist an entity, if and only if, another successfully persists

2011-05-14 Thread mscwd01
Hey

I have two entities I update and which to persist. These are in two
different entity groups so I cannot update and persist them within a
Transaction. I am using JDO pm.makePersistentAll and must ensure each
entity only saves to the datastore if both can be written.

What's the best way to do this?

Thanks

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



[appengine-java] Vs: Re: Stripes + UrlBinding + Google App Engine

2011-05-14 Thread Pauli Savolainen
Hello

I had some time to try this again, but I still have no success.

I have an ActionBean with @UrlBinding(/home). The @DefaultHandler method 
ForwardResolutions to index.jsp which only prints Hello:

@DefaultHandler
public Resolution home() {
  return new ForwardResolution(index.jsp); // Also tried /index.jsp
}

In dev environment I access my app via http://localhost:/index.jsp and 
http://localhost:/home. Both print Hello. That is, it works perfectly.

After I have deployed my app on appengine I access the application via 
http://myapp.appspot.com/index.jsp. This prints Hello, but when I access 
my app via http://myapp.appspot.com/home I get an infinite redirect loop. 
I checked the app engine logs:

/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp/index.jsp
/home/index.jsp/index.jsp
/home/index.jsp
/home/


I consider this more an app engine issue than Stripes issue because 
everything works locally but not in app engine. Stripes uses a servlet 
filter to handle the UrlBindings. The filter javadocs states:

This filter takes the following approach to determining when to dispatch an 
ActionBeanhttp://stripes.sourceforge.net/docs/current/javadoc/net/sourceforge/stripes/action/ActionBean.html:
 


   1. Allow the request to process normally, trapping any HTTP errors that 
   are returned.
   2. If no error was returned then do nothing, allowing the request to 
   complete successfully. If any error other than 404 was returned then send 
   the error through. Otherwise ...
   3. Check the 
ActionResolverhttp://stripes.sourceforge.net/docs/current/javadoc/net/sourceforge/stripes/controller/ActionResolver.htmlto
 see if an 
   
ActionBeanhttp://stripes.sourceforge.net/docs/current/javadoc/net/sourceforge/stripes/action/ActionBean.htmlis
 mapped to the URL. If not, then send the 
   404 error through. Otherwise...
   4. Invoke 
StripesFilterhttp://stripes.sourceforge.net/docs/current/javadoc/net/sourceforge/stripes/controller/StripesFilter.htmland
 
   
DispatcherServlethttp://stripes.sourceforge.net/docs/current/javadoc/net/sourceforge/stripes/controller/DispatcherServlet.html

So it expects a 404. This all seems like the app engine doesn't like this 
behaviour, thus the infinte redirect loop.

I have tried to clean my configuration as much as possible:
- I only define the DynamicMappingFilter in my web.xml. No StripesFilter 
anymore. According to the Stripes documentation this is perfectly ok. 
- I also had Guice stuff in my web.xml but I removed them as well. 
- I also configured Stripes to use my own empty implementation of the 
MultipartWrapperFactory. 

I am running out of ideas. Would be nice if could be confirmed that this 
error indeed is reproducable and not just my misconfiguration.

Thanks
Pauli Savolainen

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



[appengine-java] Re: Facebook Login integration with java appengine

2011-05-14 Thread John
We use restFB http://restfb.com/; however, we wrote our own 
authentication. Our application is a FB Canvas app.

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



[appengine-java] Strange failure last night

2011-05-14 Thread John
Sometime between 10:35 and 10:40 last evening, our app became unable to find 
datastore entities. The app was pretty much inactive - there were two 
clients that were successful shortly before 10:35 and then a couple of 
clients that arrived shortly after 10:40 couldn't authenticate. The log 
entries reported not-found when retrieving the authentication entities from 
the datastore. Looking at the datastore viewer in the GAE console, those 
entities do appear. I deployed the same code to a new version and it's 
working OK, again.

I know this isn't much useful information, but I wonder if any other apps 
have encountered this apparently transient type of failure.

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



[appengine-java] Re: Strange failure last night

2011-05-14 Thread John
To clarify - the failure began between 22:35PT and 22:40PT and persisted 
until we deployed the same code to a new version. (We didn't try deploying 
on top of the default version that was having the problem.)

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



Re: [appengine-java] Facebook Login integration with java appengine

2011-05-14 Thread Jeff Schnitzer
Don't waste your time with facebook-java-api.  It's ancient.  You're
much better off with RestFB or BatchFB (disclosure: I develop
BatchFB).

Use the Javascript SDK for login.  Don't try to do OAuth yourself -
aside from periodic changes to the protocol, it's not nearly as smooth
for users.

BTW, sometime soon BatchFB is going to get parallel fetching on
appengine - in combination with the batching mechanisms, this will be
*the* fastest way to pull facebook data to GAE.

Jeff

On Sat, May 14, 2011 at 7:35 AM, Ravi Sharma ping2r...@gmail.com wrote:
 Hi,
 I am using http://code.google.com/p/facebook-java-api/ to login using
 facebook. But unable to do so as documenttaion is not quite completed there
 and posted my problem on this site but long time no response.
 I am sure in this group many people must have done with their java app to
 login using facebook. Could you please share your code or give me some
 guidance.

 Requirement:
 I will be dispalying google/yahoo/facebook logo on my site and when user
 click on Facebook logo it will take it to facebook page to authenticate.Once
 authenticate it will call my callback url and i should be able to query
 logged in user's name etc using facebook api(java).



 I am sorry posting a facebook login question here, but the project it self
 seems inactive and no one is responding.

 Thanks in advance
 Ravi.

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



[appengine-java] Re: stderr: SystemId Unknown; Line #57; Column #31; Failed calling setMethod method

2011-05-14 Thread Daniel
Hehe :)

That's a thread I opened almost a year ago (on a completely diff
issues) happens to be that in a log I posted back than the weird
stderr was appearing too,..




On May 14, 12:46 pm, Didier Durand durand.did...@gmail.com wrote:
 Hi,

 Look 
 athttp://groups.google.com/group/google-appengine-java/browse_thread/th...

 At the very bottom, you may have the answer to you question

 regards

 didier

 On May 14, 11:25 am, Daniel vedm...@gmail.com wrote:

  My log is full of this weird stderr message

  [vedmack/1.350345457568997204].stderr: SystemId Unknown; Line #57;
  Column #31; Failed calling setMethod method

  Its an Info message...

  any ideas to what can cause this?

  Thanks ahead!

  Daniel,



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



[appengine-java] Re: Facebook Login integration with java appengine

2011-05-14 Thread Nischal
Hi,

I have open sourced a Java API which works on the latest FB Graph API. 
There's oAuth 2.0 in it. I have made it for our own app. If authentication 
is the only priority for you then you can definitely use it.

https://github.com/nischal/face4j

Let me know if you need any help integrating it. I've tried to make it as 
simple as possible. It's very weak on documentation though but here's an 
example for authentication - 
https://github.com/nischal/face4j/wiki/Facebook-oAuth-login-with-face4j

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



[appengine-java] Re: Facebook Login integration with java appengine

2011-05-14 Thread Nischal
And it works well on the 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.



Re: [appengine-java] Re: Facebook Login integration with java appengine

2011-05-14 Thread Ravi Sharma
Thanks all for your replys. SOme how i made it work with facebook_java_api
project and posted the tutorial here

http://techsravi.blogspot.com/2011/05/facebook-login-on-google-app-enginejava.html

face4j looks quite promising too...i will look into it too.

Thanks
Ravi.

On Sat, May 14, 2011 at 7:15 PM, Nischal nischalshett...@gmail.com wrote:

 And it works well on the 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-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.



Re: [appengine-java] How To: Persist an entity, if and only if, another successfully persists

2011-05-14 Thread Jeff Schnitzer
Depending on your application, you may be able to perform the 2nd
entity write in a task.  Enqueue the task transactionally with the
first operation.  You'll be guaranteed that if the first entity
commits, the 2nd will *eventually* be written as well.

It's not a perfect solution for all apps but it does cover a lot of
practical use cases.

Jeff

On Sat, May 14, 2011 at 7:52 AM, mscwd01 mscw...@gmail.com wrote:
 Hey

 I have two entities I update and which to persist. These are in two
 different entity groups so I cannot update and persist them within a
 Transaction. I am using JDO pm.makePersistentAll and must ensure each
 entity only saves to the datastore if both can be written.

 What's the best way to do this?

 Thanks

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



[appengine-java] JPA cross-reference table question

2011-05-14 Thread wir...@yahoo.com
Hello gurus.  I'm trying to design an application that allows users to rate 
movies with a star system of 1-5 stars.  For that I need a user table, a 
movie table, and an X-ref table to link them as each user can rate multiple 
movies and each movie can be rated by multiple users.  I can't define this 
relationship correctly with JPA and I need your help.  Has anyone defined 
this kind of relationship or know where a tutorial/example is?  Here is what 
I have which throws the following error: 
javax.persistence.PersistenceException: App Engine ORM does not support 
multiple parent key provider fields.


package com.app.movieRatings.model;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import com.google.appengine.api.datastore.Key;

@Entity
public class User {
  @Id
  @GeneratedValue(strategy=GenerationType.IDENTITY)
  private Key id;

  private String userId;

  @OneToMany(mappedBy = user, cascade = CascadeType.ALL)
  private ListUserMovieXRef UserMovieXRefs = new 
ArrayListUserMovieXRef();

// Getters and setters...
}

package com.app.movieRatings.model;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import com.google.appengine.api.datastore.Key;

@Entity
public class Movie {
  @Id
  @GeneratedValue(strategy=GenerationType.IDENTITY)
  private Key id;

  private String name;

  @OneToMany(mappedBy = movie, cascade = CascadeType.ALL)
  private ListUserMovieXRef UserMovieXRefs = new 
ArrayListUserMovieXRef();

// Getters and setters...
}

package com.app.movieRatings.model;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;

import com.google.appengine.api.datastore.Key;

@Entity
public class UserMovieXRef {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Key id;

private int starRating;

@ManyToOne(fetch = FetchType.LAZY)
private User user;

@ManyToOne(fetch = FetchType.LAZY)
private Movie movie;

// Getters and setters...
}


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



[appengine-java] Properties With Multiple Values Can Have Surprising Behaviors

2011-05-14 Thread Ahmed Shoeib
at this link
http://code.google.com/appengine/docs/java/datastore/queries.html#Restrictions_on_Queries

i found this topic :
Properties With Multiple Values Can Have Surprising Behaviors

but i couldn't understand how can i solve this issue and why this
problem occur  ???

can anyone help me in this issue ?

thanks..

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



[appengine-java] Re: Facebook Login integration with java appengine

2011-05-14 Thread steveb
We used Janrain which has the added advantage of supporting N networks
instead of just one.

One caveat is that it makes the login slower because you go through
Janrain redirects during login so test this to ensure it's fast enough
for you if you try it.

Steve

On May 15, 12:35 am, Ravi Sharma ping2r...@gmail.com wrote:
 Hi,
 I am usinghttp://code.google.com/p/facebook-java-api/to login using
 facebook. But unable to do so as documenttaion is not quite completed there
 and posted my problem on this site but long time no response.
 I am sure in this group many people must have done with their java app to
 login using facebook. Could you please share your code or give me some
 guidance.

 Requirement:
 I will be dispalying google/yahoo/facebook logo on my site and when user
 click on Facebook logo it will take it to facebook page to authenticate.Once
 authenticate it will call my callback url and i should be able to query
 logged in user's name etc using facebook api(java).

 I am sorry posting a facebook login question here, but the project it self
 seems inactive and no one is responding.

 Thanks in advance
 Ravi.

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



RE: [google-appengine] How to find IP address to add to blacklist

2011-05-14 Thread Brandon Wirtz
I lied, the stub code I start my projecta with has

logging.debug('User-Agent = %s, Referrer = %s',
  self.request.user_agent,
  self.request.referer)

Which will give you this

-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Brandon Wirtz
Sent: Friday, May 13, 2011 6:37 PM
To: google-appengine@googlegroups.com
Subject: RE: [google-appengine] How to find IP address to add to blacklist

Logs should have the ip address as the first thing on the second line of
each entry


-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Kwame
Sent: Friday, May 13, 2011 6:22 PM
To: Google App Engine
Subject: [google-appengine] How to find IP address to add to blacklist

Hi,
I need help tracking down a possible hacker trying to access my GAE website.
The person is sending multiple requests to phpMyAdmin/scripts/ setup.php I
guess in an attempt to bring down my site!!! Fortunately they don't know I
use GAE, and that GAE does not have this file.

I really need to blacklist this persons URI, but the only information
provided in Dashboard is the path listed above.

How can I find out their URI?

Thanks for your help.

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


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


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



Re: [google-appengine] How to find IP address to add to blacklist

2011-05-14 Thread Nischal Shetty
I don't do that but I can still see the IPs. May be your lie works in my
case :P

On 14 May 2011 13:09, Brandon Wirtz drak...@digerat.com wrote:

 I lied, the stub code I start my projecta with has

logging.debug('User-Agent = %s, Referrer = %s',
  self.request.user_agent,
  self.request.referer)

 Which will give you this

 -Original Message-
 From: google-appengine@googlegroups.com
 [mailto:google-appengine@googlegroups.com] On Behalf Of Brandon Wirtz
 Sent: Friday, May 13, 2011 6:37 PM
 To: google-appengine@googlegroups.com
 Subject: RE: [google-appengine] How to find IP address to add to blacklist

 Logs should have the ip address as the first thing on the second line of
 each entry


 -Original Message-
 From: google-appengine@googlegroups.com
 [mailto:google-appengine@googlegroups.com] On Behalf Of Kwame
 Sent: Friday, May 13, 2011 6:22 PM
 To: Google App Engine
 Subject: [google-appengine] How to find IP address to add to blacklist

 Hi,
 I need help tracking down a possible hacker trying to access my GAE
 website.
 The person is sending multiple requests to phpMyAdmin/scripts/ setup.php I
 guess in an attempt to bring down my site!!! Fortunately they don't know I
 use GAE, and that GAE does not have this file.

 I really need to blacklist this persons URI, but the only information
 provided in Dashboard is the path listed above.

 How can I find out their URI?

 Thanks for your help.

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


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


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




-- 
-Nischal
+91-9920240474
twitter: NischalShetty http://twitter.com/nischalshetty
facebook: Nischal http://facebook.com/nischal

http://www.justunfollow.com http://www.buffr.com

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



RE: [google-appengine] How to find IP address to add to blacklist

2011-05-14 Thread Brandon Wirtz
I didn't try remming the line. I was just looking at my code and thinking .
Oh maybe people don't see what I see :-)

 

That code does the user agent which the other thread about blocking bots
needs. I'm being helpful, just on the wrong thread :-)

 

From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Nischal Shetty
Sent: Saturday, May 14, 2011 12:51 AM
To: google-appengine@googlegroups.com
Subject: Re: [google-appengine] How to find IP address to add to blacklist

 

I don't do that but I can still see the IPs. May be your lie works in my
case :P

On 14 May 2011 13:09, Brandon Wirtz drak...@digerat.com wrote:

I lied, the stub code I start my projecta with has

   logging.debug('User-Agent = %s, Referrer = %s',
 self.request.user_agent,
 self.request.referer)

Which will give you this


-Original Message-
From: google-appengine@googlegroups.com

[mailto:google-appengine@googlegroups.com] On Behalf Of Brandon Wirtz
Sent: Friday, May 13, 2011 6:37 PM
To: google-appengine@googlegroups.com
Subject: RE: [google-appengine] How to find IP address to add to blacklist


Logs should have the ip address as the first thing on the second line of
each entry


-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Kwame
Sent: Friday, May 13, 2011 6:22 PM
To: Google App Engine
Subject: [google-appengine] How to find IP address to add to blacklist

Hi,
I need help tracking down a possible hacker trying to access my GAE website.
The person is sending multiple requests to phpMyAdmin/scripts/ setup.php I
guess in an attempt to bring down my site!!! Fortunately they don't know I
use GAE, and that GAE does not have this file.

I really need to blacklist this persons URI, but the only information
provided in Dashboard is the path listed above.

How can I find out their URI?

Thanks for your help.

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


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



--

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




-- 
-Nischal

+91-9920240474

twitter: NischalShetty http://twitter.com/nischalshetty 

facebook: Nischal http://facebook.com/nischal 

 

 http://www.justunfollow.com/ Description: Image removed by sender.
http://www.buffr.com/ Description: Image removed by sender.

 

 

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

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

image001.jpgimage002.jpg

[google-appengine] Datastore cost in new price

2011-05-14 Thread rekby
I want make full backup.
Do query SELECT * FROM MyTable bill as only one API call if I have some 
thoutands/millions records?

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



Re: [google-appengine] Re: 1.5 improvements Make me less scared of Pricing

2011-05-14 Thread Tim
I suspected that might be the case, but if I have a few minutes to spare 
sometime I might try it out.

My startup and servicing costs is pretty minimal - I've got a 
one-page-webapp and most of my calls are just AJAX calls to load and update 
data, so it's typically just object to JSON and back again. So given the way 
the API calls are counted and how my traffic works, I might look at getting 
rid of using the datastore for fields and just store what was a collection 
of items as a single larger JSON text blob (and look at moving to the 
blobstore), and tune the caching in the client in terms of writing back 
changes.

I suppose a dynamic API for the scheduler might make it a bit tricky for GAE 
to plan (at the small scale) how to schedule work on machines, but if it was 
more like a declaration of hints at startup about how long I'd prefer to 
hang around when idle before being killed etc - even a declaration in 
app.yaml - then I think it might go some way to allaying some of the 
concerns being voiced.

--
T

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



RE: [google-appengine] Re: 1.5 improvements Make me less scared of Pricing

2011-05-14 Thread Brandon Wirtz
I don't know what I want instances to do.. I am finishing up a complete
re-write of my code so that if I have to move to Java or GO that my code is
perfect in Python and I can pay for a port, not a re-write.   On the App I'm
baking the code to make sure I didn't blow anything up on, I'm now cruising
at 16 instances and using .025 CPU seconds a second.  So why I need 16
instances if I'm only doing 1/40th of a CPU worth of work is beyond me.
That'd imply I've got 640x as much horse power as I need.

 

Also there are a lot of things you can do much better than the example code
would imply.  I took request to first bit from 330ms down to 120ms.  And I
think I can get that to 70ms.

 

I could probably be more aggressive if I didn't have error handling. Who
needs that I never make errors.

 

I tried several things with regards to how .py was loaded and the
CGIhandler, I can't measure any difference.

 

If anyone cares zipping data makes it faster out of datastore, a tie out of
memcache, big (400k) wins big if the compression is good, and you lose on
anything under 20k. Assumes 25% average compression.  Considered zip based
on size. (may do that)

 

Anything worth writing to MemCache is probably worth writing to a
scratchpad datastore that you access by keyname.  The writes are cheap
compared to a cache miss on memcache, or you wouldn't have memcached it
would you? YMMV

 

 

 

From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Tim
Sent: Saturday, May 14, 2011 1:42 AM
To: google-appengine@googlegroups.com
Subject: Re: [google-appengine] Re: 1.5 improvements Make me less scared of
Pricing

 

I suspected that might be the case, but if I have a few minutes to spare
sometime I might try it out.

 

My startup and servicing costs is pretty minimal - I've got a
one-page-webapp and most of my calls are just AJAX calls to load and update
data, so it's typically just object to JSON and back again. So given the way
the API calls are counted and how my traffic works, I might look at getting
rid of using the datastore for fields and just store what was a collection
of items as a single larger JSON text blob (and look at moving to the
blobstore), and tune the caching in the client in terms of writing back
changes.

 

I suppose a dynamic API for the scheduler might make it a bit tricky for GAE
to plan (at the small scale) how to schedule work on machines, but if it was
more like a declaration of hints at startup about how long I'd prefer to
hang around when idle before being killed etc - even a declaration in
app.yaml - then I think it might go some way to allaying some of the
concerns being voiced.

 

--

T

 

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

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



[google-appengine] Re: Datastore cost in new price

2011-05-14 Thread Strom
It's undecided but it will probably be billed per RPC. (The query is
divided into multiple RPCs under the covers.)

On May 14, 11:34 am, rekby timofey.koo...@gmail.com wrote:
 I want make full backup.
 Do query SELECT * FROM MyTable bill as only one API call if I have some
 thoutands/millions records?

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



[google-appengine] Re: Lot's of requests per user, aggressive caching or what?

2011-05-14 Thread Ricky Button

Thanks I'll check this out. Is there anything I can to do optimize
bandwidth used. Each of those 50,000 requests are completely different
entities and have different uris, (/api/articles/46452)

On May 13, 10:10 pm, Gopal Patel patelgo...@gmail.com wrote:
 you can use in-instance caching. It may not be always up to date but will
 give you extreme speeds.

 http://appengine-cookbook.appspot.com/recipe/decorator-to-getset-from...

 checkout fifth one.



 On Sat, May 14, 2011 at 4:37 AM, Ricky Button m...@rickybutton.com wrote:
  At a peak, a user of my application can make around 30,000 - 50,000
  requests a day that returns some xml data. The xml data itself is
  cached so the request is only doing two RPC calls (one for
  authentication, one for the xml string). However, this seems to use a
  lot of CPU time and outgoing bandwidth. I've tried using memcache for
  the xml data but it turns out that it is usually a low hit ratio so it
  is quite a bit slower. Is there any form of aggressive caching or
  method I can use to limit the resources used over millions of requests
  per day?

  P.S. I have looked at this article
 http://www.kyle-jensen.com/proxy-caching-on-google-appengine
  and figured that it would not work well in my scenario because I want
  to be able to authenticate on each request.

  Thanks,
  Ricky Button

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

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



Re: [google-appengine] Re: Google App Engine OAuth endpoints throwing 400 in production.

2011-05-14 Thread Will Merydith
Thanks for the reply Robert.

I ended up spending several hours last night reading through the OAuth specs
and SHA1 specs (in particular how to properly sign a request).  I now have a
much better understanding of the OAuth dance and the Google docs seem much
more clear.

My development partner and I tried out Singpost (for Android), which seems
to work.

Just to be clear, Oauth2 isn't for OAuth2.0, but rather just indicates it's
a second version of oauth?



On Sat, May 14, 2011 at 12:32 AM, Robert Kluin robert.kl...@gmail.comwrote:

 Hey Will,
  Responses inline.


 On Fri, May 13, 2011 at 16:46, Will Merydith will.meryd...@gmail.com
 wrote:
  OK I have some new information and questions to add to this discussion:
 
  1 - There is some confusion in the documentation over whether
 registration
  is required or not.

   Yup I agree.  But it solved some issue for me in the past, so I
 thought I'd suggest it.

 
  Both here and here, it says registration is optional.  Regardless, I have
  registered my app.
 
  2 - When going through the process of registering your application with
  Google, you're informed that a certificate is not necessary on Google App
  Engine, and that the OAuth signature method is HMAC-SHA1.  Can anyone
  confirm that as the case for using the OAuth for Python?

   If I'm not mistaken, if you're using HMAC-SHA1 you don't upload a
 cert.  It will instead give you a secret key to use when signing your
 requests.


 
  3- Testing this locally doesn't provide much feedback because no matter
 what
  you pass, it works.  On appspot, it's the opposite problem because
 there's
  no information on what failed.  I've tried the OAuth Playground, which is
  great, but wanted to verify that it supports testing OAuth for python.  I
 am
  using it to test my Request for a Token and it fails, reporting,
  signature_invalid.
 
  The documentation on signature construction is confusing, in some cases
 it
  indicates sending a base string to the server that is the request url
  encoded, and in other places it seems to be saying that you pass the
 string
  directly as in:
 
  oauth_signature=wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D
 
  Can anyone clarify?


   Yes, you're going to find many things about the gdata APIs suck very
 bad and give effectively worthless error feedback.  The docs are a
 frightening mess too.  Make sure you read the protocol guides so you
 can make sure the requests look right.

 I'm using python-oauth2.  Here is a snippet of code I use, maybe it
 will help get you started:

params = {
'oauth_version': 1.0,
'oauth_nonce': oauth.generate_nonce(),
'oauth_timestamp': int(time.time()),
'oauth_callback': 'https://%s%s' % (SERVER,
  URL_MAP['FinalizeAuth']),
'oauth_consumer_key': CONSUMER_KEY,
'oauth_signature_method': 'HMAC-SHA1',
'scope': service_scopes
}
url = OAUTH_URLS['OAuthGetRequestToken']
consumer = oauth.Consumer(key=CONSUMER_KEY,
   secret=CONSUMER_SECRET)
request = oauth.Request(method='POST', url=url, parameters=params)
request.sign_request(oauth.SignatureMethod_HMAC_SHA1(),
   consumer, None)
params['oauth_signature_method'] = request['oauth_signature_method']
params['oauth_signature'] = request['oauth_signature']
result = urlfetch.fetch(url, payload=urllib.urlencode(params),
method='POST')



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

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



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



[google-appengine] Do HR-enabled apps get more than one memcached instance?

2011-05-14 Thread Sergey Schetinin
So, I was watching the presentation on the HR datastore from the IO
2011 ( 
http://www.google.com/events/io/2011/sessions/more-9s-please-under-the-covers-of-the-high-replication-datastore.html
) and one thing caught my attention: the slides were showing the
frontend instances running in more than one datacenter at the same
time. So I understand that the memcached can lose data at any time and
if the app is migrated between the datacenters all of the data in the
cache are lost, however, running the app in two or more datacenters at
a time each DC having a separate memcached cluster, that changes the
properties quite significantly.

For example let's consider an app that uses some memcached key to keep
a cursor where to write to the datastore, atomically incrementing it
after each write. Such an app can detect if such a key is not present
in the cache and determine what the cursor is by doing a query on the
database and then add it to the cache atomically. If we add the
possibility that there's another DC running the app w/ an independent
memcached instance, such an app would just corrupt its own data.

I hope I explained my concern well enough, and I would love to hear an
answer from someone on the App Engine team.

Thank you.

-Sergey

-- 
http://self.maluke.com/

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



[google-appengine] What's going on with my CPU times

2011-05-14 Thread stevep
Can anyone help me understand these CPU times.

I have an on-line handler function that basically does a get_by_id(),
and sends out the bytes for a 150x100 pixel jpeg BLOB record value. A
pretty straightforward image retrieval from the datastore.

My CPU loads are all over the map. I am $9 paying for 3 instances to
stay resident. An instance takes just less than 15 meg of RAM. Very
low volumes right now, so maybe that affects this?

Looking at AppStats, the function itself is consistently taking 200ms
or less for every call. So how am I getting 13,000ms for this simple
function?

I've copied/pasted a series of calls for this image below. Here is an
extract of the last 4 url calls:
242ms...80cpu
351ms...13,740cpu
466ms4,903cpu
182ms2,922cpu

Looking at the full list below, I only occasionally get fast cpu
times. This is the simplest function, can't imagine where the
inefficiencies are. Is the HR datastore that slow at pushing a small
payload of bytes out the door? Man oh man, averaging these cpu times
for a 150x100 pixel jpg, I better switch my image saves/retrieves to
S3 mucho soon.

Thanks in advance,
stevep

2011-05-14 07:20:10.949 /cardimage/59005_t.jpg 200 242ms 80cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-14 07:03:04.967 /cardimage/59005_t.jpg 200 351ms 13740cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 14:50:48.065 /cardimage/59005_t.jpg 200 466ms 4903cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 13:57:09.990 /cardimage/59005_t.jpg 200 182ms 2922cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 10:39:27.922 /cardimage/59005_t.jpg 200 196ms 1474cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 09:01:08.347 /cardimage/59005_t.jpg 200 494ms 777cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 08:13:33.672 /cardimage/59005_t.jpg 200 501ms 435cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 07:23:52.577 /cardimage/59005_t.jpg 200 371ms 117cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 07:06:09.403 /cardimage/59005_t.jpg 200 880ms 1585cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 05:39:36.415 /cardimage/59005_t.jpg 200 728ms 6460cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 03:17:36.456 /cardimage/59005_t.jpg 200 413ms 1252cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 00:55:52.879 /cardimage/59005_t.jpg 200 683ms 191cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 22:42:57.523 /cardimage/59005_t.jpg 200 342ms 796cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 22:06:37.960 /cardimage/59005_t.jpg 200 77ms 66cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 22:03:02.608 /cardimage/59005_t.jpg 200 301ms 99cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 22:00:49.586 /cardimage/59005_t.jpg 200 393ms 118cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 21:54:47.092 /cardimage/59005_t.jpg 200 220ms 45cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 21:54:45.633 /cardimage/59005_t.jpg 200 90ms 46cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)

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



Re: [google-appengine] Understanding Security

2011-05-14 Thread Erick Fleming

 If I understand what you are saying, I could make every URL map to a
 servlet, and let the servlet return the specific static pages.


Yes.  I generate my static content from simple templates, store them in the
Datastore + Memcache, and serve them through a Servlet.  There's a blog post
by Nick Johnson on this technique for Python (though i can find it now).



 Or can I just put my folder of HTML into the resources section, and not
 have to write another servlet?


No. You still need a servlet or filter to serve the file out of the
resources



 Cheers, Eric



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



Re: [google-appengine] Understanding Security

2011-05-14 Thread Erick Fleming
Actually I was wrong I on the last point.  If you use appengine_web.xml [1] 
to configure your static files as excluded then appengine won't move them 
to the static server.  Therefore, you can use a statandard filtering 
mechanism for those files.

[1] 
http://code.google.com/appengine/docs/java/config/appconfig.html#Including_and_Excluding_Files

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



[google-appengine] Re: Tasks are not executing!

2011-05-14 Thread dloomer
I've been noticing this as well.  Behavior is very similar to what I
saw and reported on January 5, and which was subsequently resolved.

http://groups.google.com/group/google-appengine/browse_thread/thread/7628e7474f792170/6ca1eb5f4058a9e8?lnk=gst


On May 6, 8:51 pm, Nischal Shetty nischalshett...@gmail.com wrote:
 Yeah, tasks have been behaving strange from the last couple of days. I hope
 someone looks into this.

 On 6 May 2011 19:23, Steven Cains ste...@cains.me wrote:



  Tasks have been slow here. Our default queue is supposed to run @ 60/
  m, it's slowed to 6/m for no reason.

  On May 5, 8:44 pm, David Mora dla.m...@gmail.com wrote:
   We are on master/slave: 18k per minutes as we speak

   On 5 May 2011 13:37, Stephen Johnson onepagewo...@gmail.com wrote:

Sorry but that's what I'm seeing. Anyone else?

On Thu, May 5, 2011 at 12:35 PM, Nischal Shetty 
  nischalshett...@gmail.com
 wrote:

I'm on Master/Slave. Don't tell me Task Queue's would also behave
different ways for different data stores :(

On 6 May 2011 01:01, Stephen Johnson onepagewo...@gmail.com wrote:

Just to add some more insight hopefully. I'm still developing my
application and have moved to HR datastore but kept my Master/Slave
  test
running. Past couple of days Master/Slave has exhausted Task Queue of
100,000 but HR is working fine. Typical Task Queue would probably be
  5000
for the day. Already Master/Slave has exhausted quota. For those
  having task
queue problems are you on HR or Master/Slave?

On Thu, May 5, 2011 at 12:21 PM, David Mora dla.m...@gmail.com
  wrote:

hey guys,

We are not experiencing this problem and we execute like 15k+ task
  per
minute probably.

One tip tho, might worth to mention:

The ones staying in the queue have 0 retry attempts? Retries uses a
  push
back mechanism so if they fail they are kept on the queue if your
configuration is not suitable to handle this case

On 5 May 2011 13:12, nischalshetty nischalshett...@gmail.com
  wrote:

Tasks are not executing again! Close to 30K pending tasks in my
  queue,
help!

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

--
   http://about.me/david.mora

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

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

--
-Nischal
twitter: NischalShetty http://twitter.com/nischalshetty
facebook: Nischal http://facebook.com/nischal

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

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

   --http://about.me/david.mora

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

-- 
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more 

[google-appengine] Re: Do HR-enabled apps get more than one memcached instance?

2011-05-14 Thread rekby
I thing HR-applications have more than one syncronised memcache - by
me test save in HR-memcache in 3 times slower, than Master/Slave
application.

On May 14, 6:56 pm, Sergey Schetinin ser...@maluke.com wrote:
 So, I was watching the presentation on the HR datastore from the IO
 2011 (http://www.google.com/events/io/2011/sessions/more-9s-please-under-th...
 ) and one thing caught my attention: the slides were showing the
 frontend instances running in more than one datacenter at the same
 time. So I understand that the memcached can lose data at any time and
 if the app is migrated between the datacenters all of the data in the
 cache are lost, however, running the app in two or more datacenters at
 a time each DC having a separate memcached cluster, that changes the
 properties quite significantly.

 For example let's consider an app that uses some memcached key to keep
 a cursor where to write to the datastore, atomically incrementing it
 after each write. Such an app can detect if such a key is not present
 in the cache and determine what the cursor is by doing a query on the
 database and then add it to the cache atomically. If we add the
 possibility that there's another DC running the app w/ an independent
 memcached instance, such an app would just corrupt its own data.

 I hope I explained my concern well enough, and I would love to hear an
 answer from someone on the App Engine team.

 Thank you.

 -Sergey

 --http://self.maluke.com/

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



Re: [google-appengine] Re: Do HR-enabled apps get more than one memcached instance?

2011-05-14 Thread Sergey Schetinin
I'm pretty sure the memcached clusters (if there are more than one)
are not synchronized. First of all, that would be way too slow.
Second, the talk I referenced specifically mentions that when the apps
are being migrated from a DC, the memcache writes return success but
are in fact noop, because synchronizing memcache data does not make
sense. So I would expect that there's no synchronization going on
during regular operation as well.

Anyway, I really hope that there's only one memcached cluster active at a time.

On 14 May 2011 22:05, rekby timofey.koo...@gmail.com wrote:
 I thing HR-applications have more than one syncronised memcache - by
 me test save in HR-memcache in 3 times slower, than Master/Slave
 application.

 On May 14, 6:56 pm, Sergey Schetinin ser...@maluke.com wrote:
 So, I was watching the presentation on the HR datastore from the IO
 2011 
 (http://www.google.com/events/io/2011/sessions/more-9s-please-under-th...
 ) and one thing caught my attention: the slides were showing the
 frontend instances running in more than one datacenter at the same
 time. So I understand that the memcached can lose data at any time and
 if the app is migrated between the datacenters all of the data in the
 cache are lost, however, running the app in two or more datacenters at
 a time each DC having a separate memcached cluster, that changes the
 properties quite significantly.

 For example let's consider an app that uses some memcached key to keep
 a cursor where to write to the datastore, atomically incrementing it
 after each write. Such an app can detect if such a key is not present
 in the cache and determine what the cursor is by doing a query on the
 database and then add it to the cache atomically. If we add the
 possibility that there's another DC running the app w/ an independent
 memcached instance, such an app would just corrupt its own data.

 I hope I explained my concern well enough, and I would love to hear an
 answer from someone on the App Engine team.

 Thank you.

 -Sergey

 --http://self.maluke.com/

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





-- 
http://self.maluke.com/

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



RE: [google-appengine] What's going on with my CPU times

2011-05-14 Thread Brandon Wirtz
Put it not in a blog.

Consider using Static (depending what else you are doing)

With out code it is hard to tell what you are doing but you may be using API
cpu and not CPU Cpu

Most of my CPU bill is API.

-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of stevep
Sent: Saturday, May 14, 2011 8:04 AM
To: Google App Engine
Subject: [google-appengine] What's going on with my CPU times

Can anyone help me understand these CPU times.

I have an on-line handler function that basically does a get_by_id(), and
sends out the bytes for a 150x100 pixel jpeg BLOB record value. A pretty
straightforward image retrieval from the datastore.

My CPU loads are all over the map. I am $9 paying for 3 instances to stay
resident. An instance takes just less than 15 meg of RAM. Very low volumes
right now, so maybe that affects this?

Looking at AppStats, the function itself is consistently taking 200ms or
less for every call. So how am I getting 13,000ms for this simple function?

I've copied/pasted a series of calls for this image below. Here is an
extract of the last 4 url calls:
242ms...80cpu
351ms...13,740cpu
466ms4,903cpu
182ms2,922cpu

Looking at the full list below, I only occasionally get fast cpu times. This
is the simplest function, can't imagine where the inefficiencies are. Is the
HR datastore that slow at pushing a small payload of bytes out the door? Man
oh man, averaging these cpu times for a 150x100 pixel jpg, I better switch
my image saves/retrieves to
S3 mucho soon.

Thanks in advance,
stevep

2011-05-14 07:20:10.949 /cardimage/59005_t.jpg 200 242ms 80cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-14 07:03:04.967 /cardimage/59005_t.jpg 200 351ms 13740cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 14:50:48.065 /cardimage/59005_t.jpg 200 466ms 4903cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 13:57:09.990 /cardimage/59005_t.jpg 200 182ms 2922cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 10:39:27.922 /cardimage/59005_t.jpg 200 196ms 1474cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 09:01:08.347 /cardimage/59005_t.jpg 200 494ms 777cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 08:13:33.672 /cardimage/59005_t.jpg 200 501ms 435cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 07:23:52.577 /cardimage/59005_t.jpg 200 371ms 117cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 07:06:09.403 /cardimage/59005_t.jpg 200 880ms 1585cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 05:39:36.415 /cardimage/59005_t.jpg 200 728ms 6460cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 03:17:36.456 /cardimage/59005_t.jpg 200 413ms 1252cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-13 00:55:52.879 /cardimage/59005_t.jpg 200 683ms 191cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 22:42:57.523 /cardimage/59005_t.jpg 200 342ms 796cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 22:06:37.960 /cardimage/59005_t.jpg 200 77ms 66cpu_ms 8api_cpu_ms
35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 22:03:02.608 /cardimage/59005_t.jpg 200 301ms 99cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 22:00:49.586 /cardimage/59005_t.jpg 200 393ms 118cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 21:54:47.092 /cardimage/59005_t.jpg 200 220ms 45cpu_ms
8api_cpu_ms 35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
2011-05-12 21:54:45.633 /cardimage/59005_t.jpg 200 90ms 46cpu_ms 8api_cpu_ms
35kb facebookplatform/1.0 (+http://
developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)

--
You received this message because you are subscribed to the Google Groups
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at

Re: [google-appengine] Re: 1.5 improvements Make me less scared of Pricing

2011-05-14 Thread Robert Kluin
If the data doesn't get updated, using the blobstore might be a good
idea.  As I recall, you can't update a blob.  So if the data changes
it may not be the best idea.  Of course, it really all depends on the
app / usage.

I store serialized dicts / lists in text / blob properties quite
often.  It works well for me.


Robert






On Sat, May 14, 2011 at 04:41, Tim meer...@gmail.com wrote:
 I suspected that might be the case, but if I have a few minutes to spare
 sometime I might try it out.
 My startup and servicing costs is pretty minimal - I've got a
 one-page-webapp and most of my calls are just AJAX calls to load and update
 data, so it's typically just object to JSON and back again. So given the way
 the API calls are counted and how my traffic works, I might look at getting
 rid of using the datastore for fields and just store what was a collection
 of items as a single larger JSON text blob (and look at moving to the
 blobstore), and tune the caching in the client in terms of writing back
 changes.
 I suppose a dynamic API for the scheduler might make it a bit tricky for GAE
 to plan (at the small scale) how to schedule work on machines, but if it was
 more like a declaration of hints at startup about how long I'd prefer to
 hang around when idle before being killed etc - even a declaration in
 app.yaml - then I think it might go some way to allaying some of the
 concerns being voiced.
 --
 T

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


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



[google-appengine] Possible to Defer Tasks to Backend

2011-05-14 Thread Aaron
Hi,

The way my application is set up involves deferring a lot of long-
running tasks, which I now would like to move to a backend.  Is it
possible to defer a task so that it is processed in a backend?  Or, do
I have to create handlers for every deferred task in order to take
advantage of this feature?

Best,
Aaron

P.S. Thanks so much for the hard work!  The new features are very
exciting :).

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



[google-appengine] Re: Do HR-enabled apps get more than one memcached instance?

2011-05-14 Thread Mike Wesner
Your app actually only runs out of one data center at once.  The
diagram was a little misleading.  If a data center goes down then your
app is served out of the other with a different memcache (empty)

On May 14, 3:26 pm, Sergey Schetinin ser...@maluke.com wrote:
 I'm pretty sure the memcached clusters (if there are more than one)
 are not synchronized. First of all, that would be way too slow.
 Second, the talk I referenced specifically mentions that when the apps
 are being migrated from a DC, the memcache writes return success but
 are in fact noop, because synchronizing memcache data does not make
 sense. So I would expect that there's no synchronization going on
 during regular operation as well.

 Anyway, I really hope that there's only one memcached cluster active at a 
 time.

 On 14 May 2011 22:05, rekby timofey.koo...@gmail.com wrote:









  I thing HR-applications have more than one syncronised memcache - by
  me test save in HR-memcache in 3 times slower, than Master/Slave
  application.

  On May 14, 6:56 pm, Sergey Schetinin ser...@maluke.com wrote:
  So, I was watching the presentation on the HR datastore from the IO
  2011 
  (http://www.google.com/events/io/2011/sessions/more-9s-please-under-th...
  ) and one thing caught my attention: the slides were showing the
  frontend instances running in more than one datacenter at the same
  time. So I understand that the memcached can lose data at any time and
  if the app is migrated between the datacenters all of the data in the
  cache are lost, however, running the app in two or more datacenters at
  a time each DC having a separate memcached cluster, that changes the
  properties quite significantly.

  For example let's consider an app that uses some memcached key to keep
  a cursor where to write to the datastore, atomically incrementing it
  after each write. Such an app can detect if such a key is not present
  in the cache and determine what the cursor is by doing a query on the
  database and then add it to the cache atomically. If we add the
  possibility that there's another DC running the app w/ an independent
  memcached instance, such an app would just corrupt its own data.

  I hope I explained my concern well enough, and I would love to hear an
  answer from someone on the App Engine team.

  Thank you.

  -Sergey

  --http://self.maluke.com/

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

 --http://self.maluke.com/

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



Re: [google-appengine] Re: Do HR-enabled apps get more than one memcached instance?

2011-05-14 Thread Sergey Schetinin
Thanks for the clarification.

On 15 May 2011 00:47, Mike Wesner mike.wes...@webfilings.com wrote:
 Your app actually only runs out of one data center at once.  The
 diagram was a little misleading.  If a data center goes down then your
 app is served out of the other with a different memcache (empty)

 On May 14, 3:26 pm, Sergey Schetinin ser...@maluke.com wrote:
 I'm pretty sure the memcached clusters (if there are more than one)
 are not synchronized. First of all, that would be way too slow.
 Second, the talk I referenced specifically mentions that when the apps
 are being migrated from a DC, the memcache writes return success but
 are in fact noop, because synchronizing memcache data does not make
 sense. So I would expect that there's no synchronization going on
 during regular operation as well.

 Anyway, I really hope that there's only one memcached cluster active at a 
 time.

 On 14 May 2011 22:05, rekby timofey.koo...@gmail.com wrote:









  I thing HR-applications have more than one syncronised memcache - by
  me test save in HR-memcache in 3 times slower, than Master/Slave
  application.

  On May 14, 6:56 pm, Sergey Schetinin ser...@maluke.com wrote:
  So, I was watching the presentation on the HR datastore from the IO
  2011 
  (http://www.google.com/events/io/2011/sessions/more-9s-please-under-th...
  ) and one thing caught my attention: the slides were showing the
  frontend instances running in more than one datacenter at the same
  time. So I understand that the memcached can lose data at any time and
  if the app is migrated between the datacenters all of the data in the
  cache are lost, however, running the app in two or more datacenters at
  a time each DC having a separate memcached cluster, that changes the
  properties quite significantly.

  For example let's consider an app that uses some memcached key to keep
  a cursor where to write to the datastore, atomically incrementing it
  after each write. Such an app can detect if such a key is not present
  in the cache and determine what the cursor is by doing a query on the
  database and then add it to the cache atomically. If we add the
  possibility that there's another DC running the app w/ an independent
  memcached instance, such an app would just corrupt its own data.

  I hope I explained my concern well enough, and I would love to hear an
  answer from someone on the App Engine team.

  Thank you.

  -Sergey

  --http://self.maluke.com/

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

 --http://self.maluke.com/

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





-- 
http://self.maluke.com/

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



[google-appengine] Re: What's going on with my CPU times

2011-05-14 Thread stevep
Thanks Brandon. Every image is unique, and is generated by users from
the client. So statics limitations make it infeasible.

Right now I think this has to do with the on/off again hits. I went
into my Dashboard after a few individual calls, and saw I had gone
from 3 resident instances: 3 resident and 3 dynamic. Although this was
serving a query rate of 0.018 per second. My average instance latency
was 65ms I think.

Have no idea what the resident instances are doing. But guess will
wait and see.

Cheers,
stevep

On May 14, 12:27 pm, Brandon Wirtz drak...@digerat.com wrote:
 Put it not in a blog.

 Consider using Static (depending what else you are doing)

 With out code it is hard to tell what you are doing but you may be using API
 cpu and not CPU Cpu

 Most of my CPU bill is API.



 -Original Message-
 From: google-appengine@googlegroups.com

 [mailto:google-appengine@googlegroups.com] On Behalf Of stevep
 Sent: Saturday, May 14, 2011 8:04 AM
 To: Google App Engine
 Subject: [google-appengine] What's going on with my CPU times

 Can anyone help me understand these CPU times.

 I have an on-line handler function that basically does a get_by_id(), and
 sends out the bytes for a 150x100 pixel jpeg BLOB record value. A pretty
 straightforward image retrieval from the datastore.

 My CPU loads are all over the map. I am $9 paying for 3 instances to stay
 resident. An instance takes just less than 15 meg of RAM. Very low volumes
 right now, so maybe that affects this?

 Looking at AppStats, the function itself is consistently taking 200ms or
 less for every call. So how am I getting 13,000ms for this simple function?

 I've copied/pasted a series of calls for this image below. Here is an
 extract of the last 4 url calls:
 242ms...80cpu
 351ms...13,740cpu
 466ms4,903cpu
 182ms2,922cpu

 Looking at the full list below, I only occasionally get fast cpu times. This
 is the simplest function, can't imagine where the inefficiencies are. Is the
 HR datastore that slow at pushing a small payload of bytes out the door? Man
 oh man, averaging these cpu times for a 150x100 pixel jpg, I better switch
 my image saves/retrieves to
 S3 mucho soon.

 Thanks in advance,
 stevep

 2011-05-14 07:20:10.949 /cardimage/59005_t.jpg 200 242ms 80cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-14 07:03:04.967 /cardimage/59005_t.jpg 200 351ms 13740cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 14:50:48.065 /cardimage/59005_t.jpg 200 466ms 4903cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 13:57:09.990 /cardimage/59005_t.jpg 200 182ms 2922cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 10:39:27.922 /cardimage/59005_t.jpg 200 196ms 1474cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 09:01:08.347 /cardimage/59005_t.jpg 200 494ms 777cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 08:13:33.672 /cardimage/59005_t.jpg 200 501ms 435cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 07:23:52.577 /cardimage/59005_t.jpg 200 371ms 117cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 07:06:09.403 /cardimage/59005_t.jpg 200 880ms 1585cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 05:39:36.415 /cardimage/59005_t.jpg 200 728ms 6460cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 03:17:36.456 /cardimage/59005_t.jpg 200 413ms 1252cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 00:55:52.879 /cardimage/59005_t.jpg 200 683ms 191cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-12 22:42:57.523 /cardimage/59005_t.jpg 200 342ms 796cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-12 22:06:37.960 /cardimage/59005_t.jpg 200 77ms 66cpu_ms 8api_cpu_ms
 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-12 22:03:02.608 /cardimage/59005_t.jpg 200 301ms 99cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-12 22:00:49.586 /cardimage/59005_t.jpg 200 393ms 118cpu_ms
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-12 

RE: [google-appengine] Re: What's going on with my CPU times

2011-05-14 Thread Brandon Wirtz
Well Duh, You are generating a JPG, you said send the bytes but you are
modifying, rendering, and compressing a JPG.  That takes some CPU.

My app sends jpgs and uses no CPU as it were because it really is do I have
this? Oh I do? Great here it is 

Your app is Hey Draw me a pretty picture Um... Ok let me do that for
youYou probably want that as a JPG not a BMP let me compress that
Let me save it to a blob incase you need it later...  here you go

It's the difference between having an intern running a photo copy and asking
Me to paint you a picture of you with my cat.   And now I'm certain you are
using APIs which have a minimum CPU per action cost.

Likely if these are one time use images, you should just write them, no
blob.
These are small, so likely if you need to keep them around you should write
them to data store
If you only kind of need them sometimes, consider memcache so you don't have
to clean up in a week when you have lots of these.



-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of stevep
Sent: Saturday, May 14, 2011 3:06 PM
To: Google App Engine
Subject: [google-appengine] Re: What's going on with my CPU times

Thanks Brandon. Every image is unique, and is generated by users from the
client. So statics limitations make it infeasible.

Right now I think this has to do with the on/off again hits. I went into my
Dashboard after a few individual calls, and saw I had gone from 3 resident
instances: 3 resident and 3 dynamic. Although this was serving a query rate
of 0.018 per second. My average instance latency was 65ms I think.

Have no idea what the resident instances are doing. But guess will wait and
see.

Cheers,
stevep

On May 14, 12:27 pm, Brandon Wirtz drak...@digerat.com wrote:
 Put it not in a blog.

 Consider using Static (depending what else you are doing)

 With out code it is hard to tell what you are doing but you may be 
 using API cpu and not CPU Cpu

 Most of my CPU bill is API.



 -Original Message-
 From: google-appengine@googlegroups.com

 [mailto:google-appengine@googlegroups.com] On Behalf Of stevep
 Sent: Saturday, May 14, 2011 8:04 AM
 To: Google App Engine
 Subject: [google-appengine] What's going on with my CPU times

 Can anyone help me understand these CPU times.

 I have an on-line handler function that basically does a get_by_id(), 
 and sends out the bytes for a 150x100 pixel jpeg BLOB record value. A 
 pretty straightforward image retrieval from the datastore.

 My CPU loads are all over the map. I am $9 paying for 3 instances to 
 stay resident. An instance takes just less than 15 meg of RAM. Very 
 low volumes right now, so maybe that affects this?

 Looking at AppStats, the function itself is consistently taking 200ms 
 or less for every call. So how am I getting 13,000ms for this simple
function?

 I've copied/pasted a series of calls for this image below. Here is an 
 extract of the last 4 url calls:
 242ms...80cpu
 351ms...13,740cpu
 466ms4,903cpu
 182ms2,922cpu

 Looking at the full list below, I only occasionally get fast cpu 
 times. This is the simplest function, can't imagine where the 
 inefficiencies are. Is the HR datastore that slow at pushing a small 
 payload of bytes out the door? Man oh man, averaging these cpu times 
 for a 150x100 pixel jpg, I better switch my image saves/retrieves to
 S3 mucho soon.

 Thanks in advance,
 stevep

 2011-05-14 07:20:10.949 /cardimage/59005_t.jpg 200 242ms 80cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-14 07:03:04.967 /cardimage/59005_t.jpg 200 351ms 13740cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 14:50:48.065 /cardimage/59005_t.jpg 200 466ms 4903cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 13:57:09.990 /cardimage/59005_t.jpg 200 182ms 2922cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 10:39:27.922 /cardimage/59005_t.jpg 200 196ms 1474cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 09:01:08.347 /cardimage/59005_t.jpg 200 494ms 777cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 08:13:33.672 /cardimage/59005_t.jpg 200 501ms 435cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 07:23:52.577 /cardimage/59005_t.jpg 200 371ms 117cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 developers.facebook.com),gzip(gfe),gzip(gfe),gzip(gfe)
 2011-05-13 07:06:09.403 /cardimage/59005_t.jpg 200 880ms 1585cpu_ms 
 8api_cpu_ms 35kb facebookplatform/1.0 (+http://
 

[google-appengine] Re: Possible to Defer Tasks to Backend

2011-05-14 Thread Aaron
A follow up to this question is if we can use the new pipeline API
with backends.  If we start a pipeline in a backend, will all future
pipeline tasks be processed by the backend?

On May 14, 2:41 pm, Aaron aaron.t.che...@gmail.com wrote:
 Hi,

 The way my application is set up involves deferring a lot of long-
 running tasks, which I now would like to move to a backend.  Is it
 possible to defer a task so that it is processed in a backend?  Or, do
 I have to create handlers for every deferred task in order to take
 advantage of this feature?

 Best,
 Aaron

 P.S. Thanks so much for the hard work!  The new features are very
 exciting :).

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



[google-appengine] Caching GeoModel requests?

2011-05-14 Thread Devraj Mukherjee
Hi all,

Our project http://safesharps.org.au uses GeoModel
(http://code.google.com/p/geomodel/). To boost performance we have
been caching many of our query results using memcache, this is
generally done by keeping an index of the search terms.

Our app has Web / Mobile Web and upcoming mobile applications for iOS
and Android.

Geo is a little tricky to cache, since using the Lat/Lng is not
exactly efficient. For example, a search query by people within 10
meters of each other would result in the same results on our database
but would have different Geo locations.

Any ideas on caching / performance enhancement when using Geo queries?

Thanks.

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



RE: [google-appengine] Caching GeoModel requests?

2011-05-14 Thread Brandon Wirtz
Round.  

http://maps.google.com/?ie=UTF8ll=47.595,-122.36spn=.873914,.712402t=hz=
15

3 decimals of accuracy puts the boat near the center, but would you change
results if you
Were closer to the peer?

http://maps.google.com/?ie=UTF8ll=47.589,-122.37spn=.873914,.712402t=hz=
15

Essentially, 47.6 , -122.35 is the same as any of the above values.

Pick the level of accuracy you need and round to that.  



-Original Message-
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Devraj Mukherjee
Sent: Saturday, May 14, 2011 5:10 PM
To: google-appengine@googlegroups.com
Subject: [google-appengine] Caching GeoModel requests?

Hi all,

Our project http://safesharps.org.au uses GeoModel
(http://code.google.com/p/geomodel/). To boost performance we have been
caching many of our query results using memcache, this is generally done by
keeping an index of the search terms.

Our app has Web / Mobile Web and upcoming mobile applications for iOS and
Android.

Geo is a little tricky to cache, since using the Lat/Lng is not exactly
efficient. For example, a search query by people within 10 meters of each
other would result in the same results on our database but would have
different Geo locations.

Any ideas on caching / performance enhancement when using Geo queries?

Thanks.

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


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



Re: [google-appengine] Caching GeoModel requests?

2011-05-14 Thread David Mora
you can shard by the biggest geocell and cache based on the smallest
geocell.

at then end GeoModel creates a hash based on geoboxes that you can easily
play with

On 14 May 2011 18:10, Devraj Mukherjee dev...@gmail.com wrote:

 Hi all,

 Our project http://safesharps.org.au uses GeoModel
 (http://code.google.com/p/geomodel/). To boost performance we have
 been caching many of our query results using memcache, this is
 generally done by keeping an index of the search terms.

 Our app has Web / Mobile Web and upcoming mobile applications for iOS
 and Android.

 Geo is a little tricky to cache, since using the Lat/Lng is not
 exactly efficient. For example, a search query by people within 10
 meters of each other would result in the same results on our database
 but would have different Geo locations.

 Any ideas on caching / performance enhancement when using Geo queries?

 Thanks.

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




-- 
http://about.me/david.mora

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



Re: [google-appengine] Caching GeoModel requests?

2011-05-14 Thread Devraj Mukherjee
Appreciate that Brandon.

On Sun, May 15, 2011 at 10:24 AM, Brandon Wirtz drak...@digerat.com wrote:
 Round.

 http://maps.google.com/?ie=UTF8ll=47.595,-122.36spn=.873914,.712402t=hz=
 15

 3 decimals of accuracy puts the boat near the center, but would you change
 results if you
 Were closer to the peer?

 http://maps.google.com/?ie=UTF8ll=47.589,-122.37spn=.873914,.712402t=hz=
 15

 Essentially, 47.6 , -122.35 is the same as any of the above values.

 Pick the level of accuracy you need and round to that.

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



Re: [google-appengine] Possible to Defer Tasks to Backend

2011-05-14 Thread Greg Darke (Google)
You should be able to send a deferred task to a backend.

Some points to remember though:
 * You should ensure that any classes/etc you reference from the
frontend must exist in the backend.
 * The deferred function should pass the 'target' parameter on to taskqueue
 * You must enable the deferred handler on the backend (just make sure
it is enabled in app.yaml when you upload the backend).


On 14 May 2011 14:41, Aaron aaron.t.che...@gmail.com wrote:
 Hi,

 The way my application is set up involves deferring a lot of long-
 running tasks, which I now would like to move to a backend.  Is it
 possible to defer a task so that it is processed in a backend?  Or, do
 I have to create handlers for every deferred task in order to take
 advantage of this feature?

 Best,
 Aaron

 P.S. Thanks so much for the hard work!  The new features are very
 exciting :).

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



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



Re: [google-appengine] Re: Possible to Defer Tasks to Backend

2011-05-14 Thread Greg Darke (Google)
That is correct, all tasks get the same host header as the request
that created them. This means that if you access the url
http://0.backend-name.app-id.appspot.com/ and it inserts a task, the
task will execute against instance 0 of 'backend-name'.

If you access the url http://backend-name.app-id.appspot.com/ and it
inserts a task, the task will execute against any instance of
'backend-name'.

On 14 May 2011 15:31, Aaron aaron.t.che...@gmail.com wrote:
 A follow up to this question is if we can use the new pipeline API
 with backends.  If we start a pipeline in a backend, will all future
 pipeline tasks be processed by the backend?

 On May 14, 2:41 pm, Aaron aaron.t.che...@gmail.com wrote:
 Hi,

 The way my application is set up involves deferring a lot of long-
 running tasks, which I now would like to move to a backend.  Is it
 possible to defer a task so that it is processed in a backend?  Or, do
 I have to create handlers for every deferred task in order to take
 advantage of this feature?

 Best,
 Aaron

 P.S. Thanks so much for the hard work!  The new features are very
 exciting :).

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



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



RE: [google-appengine] HR applications and Cache Control/Pragma/Expires headers

2011-05-14 Thread Brandon Wirtz
Can I bribe somebody to do my apps?  (I even moved to 1.5 hoping that'd auto
fix them)

 

My apps all return this:

 

HTTP/1.1.200.OK(CR)(LF)
Cache-Control:.no-cache,.must-revalidate(CR)(LF)
Content-Type:.text/html;.charset=UTF-8(CR)(LF)
Set-Cookie:.S=apphosting=JPio4yliHelJf10OZQQWDw;.path=/(CR)(LF)
Date:.Sun,.15.May.2011.00:43:02.GMT(CR)(LF)
Pragma:.no-cache(CR)(LF)
Expires:.Fri,.01.Jan.1990.00:00:00.GMT(CR)(LF)
Server:.Google.Frontend(CR)(LF)

 

 

And I noticed that SOME Company I won't name, names.. Every Time they Run an
Ad on one of my pages they seem to think they need to send the AD bot, and
the Index Bot (twice) to the page, and they always do it with in 3 seconds
of the page being requested, so my bill could be like 1/3 what it is if this
was fixed. Or maybe that's the plan.. Are you guys in the GAE team giving
the Adsense and Search Teams a Kick back the more they hit my site? 

 

Not to mention the messages the Webmasters team constantly send saying you
have really short expirations on your CSS and Images speed up your site by
setting longer cache lengths for your style sheets, javascript, and images

 

And those people at THAT OTHER search engine the one that kind of rhymes
with what 95% of the people who try out for American Idol can't do. They
just sent me a message that Setting No Cache in headers is interpreted in a
way not dissimilar to 'no-index'. No-cache implies that the information is
for onetime use and that the user or bot should not view this information as
static.  If information doesn't have at least some shelf life there is no
reason to index it as it may not be there when future users arrive at the
site.   You have to give them credit on the amount of logic they put in to
their failure to understand that maybe I just want the user to not cache the
page so I can track them via the server rather than via javascript
analytics.  (I don't think they liked or believed my answer).

 

 

 

 

From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Gregory D'alesandre
Sent: Wednesday, May 11, 2011 11:10 AM
To: google-appengine@googlegroups.com
Subject: Re: [google-appengine] HR applications and Cache
Control/Pragma/Expires headers

 

If this was an existing app prior to 1.5.0 then it is not fixed yet, 1.5.0
put the fix in but we still need to clean up apps that were created prior to
1.5.0.

 

Hope that helps,

 

Greg

On Wed, May 11, 2011 at 10:54 AM, Stephen Johnson onepagewo...@gmail.com
wrote:

I'm confused. I have an HR app and this is what I see when I look at the
headers using Firebug for one of my images. You're saying this should be
different?

On Wed, May 11, 2011 at 9:36 AM, Francois Masurel f.masu...@gmail.com
wrote:

What is rather strange is that cache headers work perfectly fine with MS
applications.

I hope it's not a way to increase billing ;-)

I'm personaly concerned as I'm serving most of my image and file contents
dynamically from datastore or memcache.


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

 

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

 

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

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



Re: [google-appengine] Understanding Security

2011-05-14 Thread Eric Kolotyluk

Woo-Hoo!

Thanks, I can't wait to try that, but I'm don't working for the day.

Cheers, Eric

On 2011-05-14 10:15 AM, Erick Fleming wrote:
Actually I was wrong I on the last point.  If you use 
appengine_web.xml [1] to configure your static files as excluded 
then appengine won't move them to the static server.  Therefore, you 
can use a statandard filtering mechanism for those files.


[1] 
http://code.google.com/appengine/docs/java/config/appconfig.html#Including_and_Excluding_Files

--
You received this message because you are subscribed to the Google 
Groups Google App Engine group.

To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.


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



Re: [google-appengine] Re: Possible to Defer Tasks to Backend

2011-05-14 Thread Greg Darke (Google)
Since backends and frontends are updated separately, the code in each
may be different. Updating a frontend does not change the code that is
running in a backend/vice versa.

As for the syntax, I believe it should be:
deferred.defer(deferred_fn_name, param1, param2, _target='backend-name')

On 14 May 2011 18:22, Aaron aaron.t.che...@gmail.com wrote:
 Hi Greg,

 Thanks for the response.  Just to be clear, the syntax to defer a task
 to a backend is the following?
 deferred.defer(deferred_fn_name, param1, param2, _target='http://
 backend-name.app-id.appspot.com')

 Also, you mentioned that we should be sure that the backend has the
 same classes and configurations as the frontend?  As far as I have
 read, the frontend and backend are using the same code base, so is
 this implied already, or is there something extra I am missing?

 Best,
 Aaron

 On May 14, 5:56 pm, Greg Darke (Google) darke+goo...@google.com
 wrote:
 You should be able to send a deferred task to a backend.

 Some points to remember though:
  * You should ensure that any classes/etc you reference from the
 frontend must exist in the backend.
  * The deferred function should pass the 'target' parameter on to taskqueue
  * You must enable the deferred handler on the backend (just make sure
 it is enabled in app.yaml when you upload the backend).

 On 14 May 2011 14:41, Aaron aaron.t.che...@gmail.com wrote:







  Hi,

  The way my application is set up involves deferring a lot of long-
  running tasks, which I now would like to move to a backend.  Is it
  possible to defer a task so that it is processed in a backend?  Or, do
  I have to create handlers for every deferred task in order to take
  advantage of this feature?

  Best,
  Aaron

  P.S. Thanks so much for the hard work!  The new features are very
  exciting :).

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

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



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



[google-appengine] Numbers that don't quite add Up?

2011-05-14 Thread Brandon Wirtz
This isn't a big deal, but the numbers don't sum what I'd have expected.

 

Both of these are about 2.5x in billing what I think I am doing in storage.
Where does the Discrepancy come from?

 

 

From the Dashboard:290 MB on one app 1.56GB on the other

 


High Replication Data

$0.008/ GByte-day

Description: 58%

58%

0.29 of 0.50 GBytes

$0.00 / $0.00

 


High Replication Data

$0.008/ GByte-day

Description: 3%

3%

1.56 of 50.50 GBytes

$0.01 / $0.40

 

 

From the DataStore Admin: 115MB  and 600MB

 

 

 


Entity Kind

# Entities

Avg. Size/Entity

Total Size


Kind1

149,947

342 Bytes

49 MBytes


Kind2

11,885

6 KBytes

66 MBytes


Config

1

244 Bytes

244 Bytes

 

 


Kind1

633,362

317 Bytes

192 MBytes


Kind2

84,211

5 KBytes

408 MBytes


Config

1

257 Bytes

257 Bytes

 

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

image003.pngimage004.png

Re: [google-appengine] Numbers that don't quite add Up?

2011-05-14 Thread Stephen Johnson
Well, the Datastore Statistics don't add in any indexing, etc. whereas the
quota details does add that in.

On Sat, May 14, 2011 at 9:37 PM, Brandon Wirtz drak...@digerat.com wrote:

 This isn’t a big deal, but the numbers don’t sum what I’d have expected…



 Both of these are about 2.5x in billing what I think I am doing in
 storage.  Where does the Discrepancy come from?





 From the Dashboard:290 MB on one app 1.56GB on the other



 High Replication Data

 $0.008/ GByte-day

 [image: Description: 58%]

 58%

 0.29 of 0.50 GBytes

 $0.00 / $0.00



 High Replication Data

 $0.008/ GByte-day

 [image: Description: 3%]

 3%

 1.56 of 50.50 GBytes

 $0.01 / $0.40





 From the DataStore Admin: 115MB  and 600MB







 **

 *Entity Kind*

 *# Entities*

 *Avg. Size/Entity*

 *Total Size*

 Kind1

 149,947

 342 Bytes

 49 MBytes

 Kind2

 11,885

 6 KBytes

 66 MBytes

 Config

 1

 244 Bytes

 244 Bytes





 Kind1

 633,362

 317 Bytes

 192 MBytes

 Kind2

 84,211

 5 KBytes

 408 MBytes

 Config

 1

 257 Bytes

 257 Bytes



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


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

image003.pngimage004.png