Hi all, I'm a novice. Can anyone show me, If there is a way to run Multiple apps on gae with linux?
On Sat, Jul 23, 2011 at 7:11 PM, <[email protected]>wrote: > Today's Topic Summary > > Group: http://groups.google.com/group/google-appengine/topics > > - SDK Upgrade 1.5.2: --datastore_path > ignored?<#13158691f992ddfb_group_thread_0>[9 Updates] > - 1.5.2 SDK Prerelease <#13158691f992ddfb_group_thread_1> [1 Update] > - Transactions and ancestor in a different > namespace<#13158691f992ddfb_group_thread_2>[1 Update] > - For deployment only does the sdk version > matter?<#13158691f992ddfb_group_thread_3>[1 Update] > - GAE starting unnecessary instances <#13158691f992ddfb_group_thread_4>[4 > Updates] > - path/wildcards on GAE Boto > get_bucket()?<#13158691f992ddfb_group_thread_5>[1 Update] > - App Engine Weekly Community Update > #1<#13158691f992ddfb_group_thread_6>[3 Updates] > > Topic: SDK Upgrade 1.5.2: --datastore_path > ignored?<http://groups.google.com/group/google-appengine/t/90918f593e1f860c> > > c h <[email protected]> Jul 22 12:17PM -0700 ^<#13158691f992ddfb_digest_top> > > hi all, > > i *think* that it is honoring your datastore location (though the log > message is incorrect), but the change to rename your application to > dev~<your appname> in development has just rendered all of our test > data > useless. > > after re-importing my test data it does look like it is stored where i > ask > it to be, but under the new application name. > > if you are lucky enough to be using sqlite you can connect to the db > and > rename some tables to get it to work: > > sqlite3 local_appname_dev_sqlite.datastore > sqlite> .tables > Apps > IdSeq > Namespaces > appname!!Entities > appname!!EntitiesByProperty > appname!namespace!Entities > appname!namespace!EntitiesByProperty > sqlite> alter table `appname!!Entities` rename to > `dev~appname!!Entities`; > sqlite> alter table `appname!!EntitiesByProperty` rename to > `dev~appname!!EntitiesByProperty`; > sqlite> alter table `appname!namespace!Entities` rename to > `dev~appname!namespace!Entities`; > sqlite> alter table `appname!namespace!EntitiesByProperty` rename to > `dev~appname!namespace!EntitiesByProperty`; > > > where you substitute 'appname' for your application's name, and > 'namespace' > for your datanamespace. > > cfh > > > > > Matthew Blain <[email protected]> Jul 22 12:39PM -0700 > ^<#13158691f992ddfb_digest_top> > > That's a clever way to update the appid. I do not know if it works for > all cases (e.g. it may not work for all reference properties (stored > keys)) but is a neat trick. > > Another way to deal with it is to use the --default_partition="" flag > rather than using an older version of the sdk. > > --Matthew > > > > > > Chris Copeland <[email protected]> Jul 22 04:57PM -0500 > ^<#13158691f992ddfb_digest_top> > > Thanks, Matthew. > > I was able to update to 1.5.2 and use my existing datastore by adding > that > flag. > > It would have been useful if the release notes had mentioned that this > would > be necessary. > > -Chrsi > > > > > > c h <[email protected]> Jul 22 06:38PM -0700 ^<#13158691f992ddfb_digest_top> > > yup the sqlite updates don't quite seem to work. > > i second that the release notes should be updated, the flag does seem > to > work for me > > cfh > > > > > Joseph Letness <[email protected]> Jul 22 06:49PM -0700 > ^<#13158691f992ddfb_digest_top> > > I tried the --default_partition="" flag but now validation.py is > throwing an exception: > > Traceback (most recent call last): > File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ > GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ > google/appengine/tools/dev_appserver.py", line 4099, in _HandleRequest > default_partition) > File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ > GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ > google/appengine/api/validation.py", line 360, in __setattr__ > value = self.GetValidator(key)(value, key) > File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ > GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ > google/appengine/api/validation.py", line 598, in __call__ > return self.Validate(value, key) > File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/ > GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/ > google/appengine/api/validation.py", line 923, in Validate > '\'%s\'' % (value, key, self.re.pattern)) > ValidationError: Value '""~tagassetspro' for application does not > match expression '^(?:[a-z\d\-]{1,100}\~)?(?:(?!\-)[a-z\d\-\.] > {1,100}:)?(?!-)[a-z\d\-]{1,100}$' > > This has got to be a bug. It's not like using stored test data with > the dev server is some kind of oddball edge case ;-) > > --Joe > > > > > > > > Cat <[email protected]> Jul 23 12:25AM -0700 > ^<#13158691f992ddfb_digest_top> > > One thing I know for sure now is that the following log message is > bogus, it appears even if dev_appserver.py successfully connects and > uses a store at a different location than the TMP directory. > INFO 2011-07-23 07:22:11,762 rdbms_sqlite.py:58] Connecting to > SQLite database '' with file '/var/folders/u5/u5xmrm5gHPGXhfjlyv98u+++ > +TI/-Tmp-/dev_appserver.rdbms' > > > > > Cat <[email protected]> Jul 23 12:46AM -0700 > ^<#13158691f992ddfb_digest_top> > > ================ > SOLUTION > ================ > > 1. USE --default_partition= BUT DO NOT INCLUDE THE QUOTES as mentioned > in Matthew's post. > 2. IGNORE THE INCORRECT LOG MESSAGE ... rdbms_sqlite.py:58] Connecting > to SQLite database ... > > LauncherFlags: > --datastore_path=/Users/cat/repositories/appengine/my.datastore -- > default_partition= > > Console Flags: > dev_appserver.py --datastore_path=/Users/cat/repositories/appengine/ > my.datastore --default_partition= -p 8080 . > > That's it. > > > > > > Joseph Letness <[email protected]> Jul 23 10:03AM -0700 > ^<#13158691f992ddfb_digest_top> > > That did the trick, Cat. Thanks! > > > > > > WallyDD <[email protected]> Jul 23 10:35AM -0700 > ^<#13158691f992ddfb_digest_top> > > Many thanks Cat. > > Just adding --default_partition= to the launch settings worked for me. > > Using the Google App Engine Launcher; > Edit, Application settings. > In the box "Launch Settings" add --default_partition= > > > > > Topic: 1.5.2 SDK > Prerelease<http://groups.google.com/group/google-appengine/t/aac0abb8b3cd2d40> > > Brandon Donnelson <[email protected]> Jul 23 07:54AM -0700 > ^<#13158691f992ddfb_digest_top> > > Suggestion: When you prerelease, could you stick that in the eclipse > repository too, for ease of download? > > Brandon Donnelson > http://gwt-examples.googlecode.com > > > > Topic: Transactions and ancestor in a different > namespace<http://groups.google.com/group/google-appengine/t/7afde609f5670152> > > Hugo Visser <[email protected]> Jul 23 05:51AM -0700 > ^<#13158691f992ddfb_digest_top> > > Well it appears that the entire key path for an entity group is bound > to one namespace. I am using Objectify in my app which doesn't have > the namespace in the keys but when checking out the low level Java api > that became apparent. > > > > > Topic: For deployment only does the sdk version > matter?<http://groups.google.com/group/google-appengine/t/492ec7e0bbd78693> > > Hugo Visser <[email protected]> Jul 23 05:49AM -0700 > ^<#13158691f992ddfb_digest_top> > > Thanks Ikai, keeping it somewhat up to date will be fine for CI > purposes. > > > > > Topic: GAE starting unnecessary > instances<http://groups.google.com/group/google-appengine/t/baf439a6e073f6da> > > Galoch <[email protected]> Jul 22 11:57AM -0700 > ^<#13158691f992ddfb_digest_top> > > Hi Johan, > > Thanks for the explanation. I have couple of questions on that. > > 1. "1 Hours ago while all your Always On instance were busy and you > had a burst of incoming requests" > While this may be true when my Always On instances were "busy" running > some stuff but what about when 2 Always On instances show only "1" > request served which is the Warmup request itself. Does this mean > Warmup requests are considered as traffic? If that is the case then > Always On instances seem rather useless since they will never ever get > called in this scenario. > > > 2. As Tom mentioned, what qualifies "busy". When threadsafe option was > implemented in GAE these 3 Always On instances were able to do most of > the heavy lifting with occasional spinning of dynamic instances. > Nothing has changed on our side that should alter this behavior. With > all these changes happening within GAE I am trying to figure out what > changed and what we can do to contain this burst of traffic within 3 > (or more ) Always On instances with less frequent spinning of Dynamic > instances. > > > 3. "- 2 Minutes ago all your instances Always On + Dynamic were busy > again and the scheduler spawned a new Dynamic instance that handle 7 > incoming requests. " > Again what constitutes "busy" as I do not see any request being served > by Always On instances 2 and 3 in last 1 hour. Note that number of > requests served by Always On 2/3 are unchanged since they were > created ... > Here's my reading in this scenario: > a. It kills Dynamic Instance 1 within 2 minutes of serving a request > b. When traffic comes in it looks only for Dynamic Instances if they > are busy and completely ignores Always On instances at this point > c. It recreates Dynamic Instance 1 > > In other words, what rule is applied in this case? > > Also I fail to understand rule 4 as both Rob and Luca mentioned. That > completely undermines having Always On instances under threadsafe > mode. > > 4. I like Rob's suggestion of better load balancing techniques but > again with a caveat that an instance needs to be able to serve > multiple threads before reaching a set capacity (80% or so) > > 5. Luca's suggestion also makes sense but again with the same > caveat ... it should be able to process multiple threads before > queuing > > 6. I looked at the new sliders in the Admin console and with those the > situation is even worse. I set the Max Idle Instances to 3 (that's the > minimum I could choose) and Min Pending Latency to 15 secs ... Guess > what our CPU usage has gone up to 15 in 12 hrs because of constant > creation and killing of 3 dynamic instances. Bare minimum traffic and > few light weight crons. > But the good side is now I see requests coming in on the 3 Always On > instances. Is that enough load they are serving ... I don't know yet > but something to observe. > > > Two things I suggest would be really helpful for us: > A. The overall key here is to know the thread handling capacity of an > instance. Better yet if it can be configured similar to Backends but > dynamic in nature (and of course Backends pricing is outrageous ... > but that's another topic) > B. Able to add more Always On instances but again with a dependency > explained in point A. > > Hope it makes sense. > > Thanks, > galoch > > > > > > > > > > Tom Phillips <[email protected]> Jul 22 12:46PM -0700 > ^<#13158691f992ddfb_digest_top> > > The current behavior makes me suspect we are being prepared for Always- > on being replaced completely by the new scheduler knobs. Being able to > turn up the number of idle instances does make always-on somewhat > redundant, as long as the idle instances stick around for a while. > > Also, if always-on instances WERE being properly utilized right now, > it would require artificial load to ascertain the effects of the new > scheduler on dynamic instances (assuming the three AO instances were > sufficient for your app previously). Many devs wouldn't learn about > the new scheduler attributes until after their app (suddenly) becomes > popular - not the best time for surprises. And Google wouldn't get as > much feedback on the features/behavior of the new scheduler. > > Is Always-on going to be kept under the new model? > > /Tom > > > > > > > Robert Kluin <[email protected]> Jul 22 10:11PM -0400 > ^<#13158691f992ddfb_digest_top> > > I've suspected the same thing. So far we've seen no pricing info for > always on and questions about it have went unanswered. Not to mention > that $2.10 / week for three always-on instances is a lot different > than $40 / week. > > > Robert > > > > > > > > Francois Masurel <[email protected]> Jul 23 02:01AM -0700 > ^<#13158691f992ddfb_digest_top> > > Geez, now even some Dynamic instances are not used too and stay idle > for > hours (check attachment). > > With the new pricing model this will get really really expensive. > > I hope there is definitely something going wrong. > > Francois > > > > Topic: path/wildcards on GAE Boto > get_bucket()?<http://groups.google.com/group/google-appengine/t/e37730b9a50adcce> > > David Cheney <[email protected]> Jul 22 04:24PM -0700 > ^<#13158691f992ddfb_digest_top> > > Cross posting answer .. thanks to Mike @ groups.google.com/group/gs- > discussion > > The REST API doesn't directly support wildcard request. You can ask > for a > prefix, (you can see documentation for this here > <http://code.google.com/apis/storage/docs/reference- > headers.html#prefix>) > but not (for example) gs://bucket/*.txt > > gsutil has a library that does the wildcarding you want: please see > http://code.google.com/p/gsutil/source/browse/trunk/src/gslib/wildcar > ... > > (Or if you just need to do some wildcarding from the command line, you > can > use gsutil rather than the library inside gsutil) > > == > > > > > Topic: App Engine Weekly Community Update > #1<http://groups.google.com/group/google-appengine/t/d940dbfb796544ef> > > Rodrigo Moraes <[email protected]> Jul 22 12:35PM -0700 > ^<#13158691f992ddfb_digest_top> > > Hi Jay, > This was also posted on Google Plus: > > https://plus.google.com/111042085517496880918/posts/exjJoZwygq1 > > Until there're brand pages on g+, and then the weekly update could be > posted > on a 'App Engine' profile, you can follow Johan using the link above. > > -- rodrigo > > > > > Barry Hunter <[email protected]> Jul 22 08:57PM +0100 > ^<#13158691f992ddfb_digest_top> > > Maybe a Google "Alert" for > > site:groups.google.com/group/google-appengine/ intitle:"App Engine > Weekly Community Update" > > > http://www.google.com/alerts/ > > > > > > Geoffrey Spear <[email protected]> Jul 22 01:08PM -0700 > ^<#13158691f992ddfb_digest_top> > > > nickname++ people as a signal of the question of the current thread > > being answered, or we (community) can decide to shift those question > > to Stack Overflow and keep the group for more casual discussion. > > Since you mention StackOverflow and linked to some interesting > questions in the update, I wonder if anyone with > http://data.stackexchange.com > skills could produce similar metrics from the google-app-engine tag on > SO. > > > > -- > 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. > -- 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.
