[09:04] <google-gregd> hello all, time for office hours!
[09:06] <mbw> had an odd error yesterday....
[09:06] <mbw> _ToDatastoreError(err)
[09:06] <mbw> ', "Error: User 'apphosting' not authorized for read access.
See
[09:06] <mbw> http://go/prom-loas.
[09:06] <mbw> ', "Error: User 'apphosting' not authorized for read access.
See
[09:07] <mbw> it cut out the middle... Error: User 'apphosting' not
authorized for read access. See
[09:07] <google-gregd> wow, that is an odd error
[09:07] <google-gregd> do you know when it happened?
[09:09] <mbw> Yesterday 11:39 AM, central or so (thats when the support
ticket was reported to our system from a customers app)
[09:09] <mbw> Yesterday 11:39 AM, central or so (thats when the support
ticket was reported to our system from a customers app)
[09:09] <mbw> Yesterday 11:39 AM central
[09:09] <google-gregd> mbw, do you happen to be a googler?
[09:10] <mbw> me, no.  I am with WebFilings
[09:10] <mbw> my client is acting up.. i think i posted a message twice but
its not showing.  sorry about that
[09:10] == Harpyon [[email protected]] has quit [Quit:
Computer has gone to sleep.]
[09:10] <google-gregd> cool, just double checking, because that is an error
that an external customer shouldn't get
[09:11] <mbw> that was in our logs, the error caused a request to fail,
which our rich client detected and sent to our ticket system
[09:11] <google-gregd> I'll follow up with our engineering team to see why
you got that
[09:11] <mbw> thanks
[09:12] == mbw [[email protected]]
[09:12] ==  realname : Michael Wesner
[09:12] ==  channels : #appengine
[09:12] ==  server   : hubbard.freenode.net [Pittsburgh, PA, US]
[09:12] ==  account  : mbw
[09:12] == End of WHOIS
[09:12] <google-gregd> thanks for reporting it!
[09:12] <jasoncollins> In the past, App Engine was touted as an ideal
platform for building a Google Apps application - e.g., the app.yaml
login:required and login:admin interop directly with the Google Apps auth
(I believe). Does anyone know of any Best Practices or other documentation
related to using App Engine to build a Google Apps application?
[09:13] == topriddy1 [[email protected]] has left #appengine []
[09:15] == gr-eg [[email protected]] has
joined #appengine
[09:16] <marzia_google> I don't think the best practices for building an
App Engine app restricted to a specific domain really differ from the best
practices of building any other app - once you set up the auth to be
restricted to your domain, there isn't much else you need to do
[09:17] <jasoncollins> I'm thinking of a multi-tenancy app that is
installable by an arbitrary G Apps domain.
[09:18] <jdeibele1> johnlockwood: actually I'm at 13.   I was able to
create 18 applications as I was migrating and aliasing.   But then not able
to create more and the number has dropped as the apps migrate.
[09:18] <jasoncollins> So there are some bits around
namespace_manager_default_namespace_for_request, etc.
[09:19] <jasoncollins> It's also not immediately evident if the app.yaml
auth approach is preferred to the OAuth approach.
[09:19] <marzia_google> ah, i see. in that case i don't know that there any
published best practices
[09:20] <marzia_google> however, anecdotally, i feel people are preferring
OAuth now for those things
[09:20] <mbw> ya, just depends on what your users want to use
[09:21] <jasoncollins> probably because this lets them deploy their app
against different auth mechanisms apart from G Apps
[09:21] <jasoncollins> If I'm only interested in G Apps, is the app.yaml
auth approach going to give me what I need?
[09:21] <johnlockwood_> jdeibele1: now that it is office hours, maybe one
of the googliers can up your application limit
[09:22] == BlartShart [~
[email protected]] has joined
#appengine
[09:22] <marzia_google> app.yaml will requre login, however, it won't be
able to restrict it to only a subset of Google Apps domains - we only offer
login for a single domain, or any Google Account
[09:22] <marzia_google> so you'd need to do additional verification in the
app
[09:22] <marzia_google> for multiple Apps domains
[09:23] == rhashimoto [[email protected]] has
joined #appengine
[09:24] <google-gregd> jdeibele1: I'm a googler, I missed the beginning of
the conversation
[09:24] <google-gregd> jdeibele1: but I'm happy to help if I can
[09:26] <jasoncollins> Ok, thanks marzia_google. I still feel like I'm
missing some fundamental pieces in my mind. A (multi-tenancy,
white-labelled) Pet Shop for G Apps would be awesome!
[09:27] <marzia_google> @jasoncollins i understand. i don't think there is
a good out of the box style solution for multi-tenancy like you desire - at
this point it's still pretty DIY
[09:32] <johnlockwood> google-gregd: jdeibele1 needs to more appids because
of migration
[09:34] <google-gregd> johnlockwood: oh, interesting point, sure, I can
bump that by a bit, jdeibele1 could you give me your email address?  Feel
free to email it to me directly at [email protected]
[09:34] <johnlockwood>  I'm enjoying webapp2's User model
[09:35] <johnlockwood> for multi-tenancy one of the main ideas is to use
namespaces that match the App account
[09:36] == craigglennie [~
[email protected]] has quit [Remote host
closed the connection]
[09:36] == craigglennie [~
[email protected]] has joined #appengine
[09:39] == headsupftw [[email protected]] has joined #appengine
[09:39] <jsonbot> [codeblog] - Flash developers: export to HTML5 with new
Swiffy extension - http://tinyurl.com/7u83nn2
[09:40] <headsupftw> is the Q/A session going on right now?
[09:40] <johnlockwood> yes
[09:40] <google-gregd> headsupftw: it sure is
[09:41] <headsupftw> awesome! my app is generating a large number of
datastore reads and writes. What counts as a datastore write?
[09:41] <headsupftw> one entity right + 2 or 4 per index?
[09:42] <headsupftw> sorry one entity write + 2 or 4 writes per index
[09:42] == greg_f [~greg@altlinux/developer/greg] has quit [Read error:
Connection reset by peer]
[09:43] <jasoncollins> headsupftw - remember to include the implicit
asc/desc indexes for each property
[09:43] <headsupftw> if the indexed property value didn't change when i
update the row, it won't count as extra datastore writes, right?
[09:46] <marzia_google> you can also see the number of write ops for an
entity in the dev appserver
[09:46] <jasoncollins> ya, I believe you're only charged a write on an
update if the value has changed.
[09:46] <marzia_google> but in general, to save cost on index writes, you
can check to see if your custom indexes are no longer needed, due to some
of the recent query planning work
[09:47] <jasoncollins> though, you're actually charged 2 - one to remove
the old value and one to create the new one
[09:47] <marzia_google> (
http://code.google.com/appengine/articles/indexselection.html)
[09:47] <headsupftw> i do see the numbers on the quota section
[09:48] <headsupftw> so i set most of my columns as non-indexed, the number
of writes has dropped but it was still very high
[09:48] <headsupftw> then i turned off slim3 transaction and it dropped to
1/10 of what it used to be!
[09:48] <headsupftw> anybody know why that is?
[09:49] <headsupftw> so it is 2 extra writes per index if the value changed
[09:50] <headsupftw> now i'm trying to tackle the high number of reads
issue. I'm guessing memcache is the first thing i should try?
[09:51] <johnlockwood> webapp2 tries to "import ndb" and fails
[09:52] <johnlockwood> or rather webapp2_extras.models tries "from ndb
import model"
[09:52] <johnlockwood> and that fails
[09:52] <headsupftw> another question, i also notice my "frontend instance
hours" usage is high. How 's that calculated?
[09:52] <marzia_google> you should definitely be using memcache
[09:53] <johnlockwood> since the built in ndb is in google.appengine.ext
[09:53] <headsupftw> i ran one instance for like 10 minutes and it used
almost an hour of frontend instance time. how's that possible?
[09:54] <marzia_google> Billing begins when the instance starts and ends
fifteen minutes after the instance shuts down
[09:54] <marzia_google> for instance hours
[09:56] <headsupftw> oh…so since i'm the only one testing it, it's
constantly shut down and restarted, which results in high number of
frontend instance hours?
[09:56] <johnlockwood> my solution to the problem was to add
google.appengine.ext to my sys.path in my main.py
[09:57] <johnlockwood> but that is silly when one builtin lib doesn't
reference the other
[09:57] <headsupftw> and if two instances are running at the same time, the
instance hour number doubles?
[09:58] <marzia_google> for testing you should actually make use of the
scheduler knobs to limit the possibility you are using two instances - if
you are the only one testing against it
[09:58] <marzia_google> you could increase your pending latency
[09:58] <marzia_google> it's a good way to limit costs in testing
[09:58] == google-gregd [4a5f015a@gateway/web/freenode/ip.74.95.1.90] has
quit [Quit: Page closed]
[09:58] == jsurfer [[email protected]] has
joined #appengine
[10:00] == craigglennie_ [~
[email protected]] has joined #appengine
[10:00] <headsupftw> scheduler knobs, pending latency…i can set those from
the dashboard?
[10:00] <marzia_google> yes
[10:01] <marzia_google> you need to be careful once you send live traffic
if you are using them during testing to limit cost,, but they are very easy
to adjust
[10:01] <marzia_google> let me dig up the link
[10:01] <marzia_google>
http://code.google.com/appengine/docs/adminconsole/performancesettings.html
[10:02] <marzia_google> And with that I think office hours for today are
over
[10:02] <marzia_google> but thanks everyone for coming!
[10:02] <headsupftw> thx guys!

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

Reply via email to