<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-4311234419396881619.post4506520988777011089..comments</id><updated>2009-06-14T02:17:50.569+02:00</updated><title type='text'>Comments on Stringbuffer.com: Google App Engine runtime switching and the myster...</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.stringbuffer.com/feeds/4506520988777011089/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default'/><link rel='alternate' type='text/html' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html'/><author><name>Stringbuffer.com</name><uri>http://www.blogger.com/profile/13625967709587703071</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4311234419396881619.post-4446654167236973789</id><published>2009-06-14T02:17:50.569+02:00</published><updated>2009-06-14T02:17:50.569+02:00</updated><title type='text'>Sorry, forgot to add, I mention this because Pytho...</title><content type='html'>Sorry, forgot to add, I mention this because Python interpreters don&amp;#39;t stay alive for anywhere near the figures you&amp;#39;re seeing (there were some good posts about this to the appengine-python group).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default/4446654167236973789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default/4446654167236973789'/><link rel='alternate' type='text/html' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html?showComment=1244938670569#c4446654167236973789' title=''/><author><name>David</name><uri>http://www.blogger.com/profile/03076592079146860428</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html' ref='tag:blogger.com,1999:blog-4311234419396881619.post-4506520988777011089' source='http://www.blogger.com/feeds/4311234419396881619/posts/default/4506520988777011089' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4311234419396881619.post-7434107364420440127</id><published>2009-06-14T02:16:24.567+02:00</published><updated>2009-06-14T02:16:24.567+02:00</updated><title type='text'>Hi there,

One of the tricks employed in Android i...</title><content type='html'>Hi there,&lt;br /&gt;&lt;br /&gt;One of the tricks employed in Android in order to make new JVM turn up _really damn fast_ is to keep a &amp;#39;zygote&amp;#39; process ready for immediate cloning when a request comes in.&lt;br /&gt;&lt;br /&gt;I have no idea what the getHashCode() implementation is like for Runtime, but in many cases it will simply be a hash of the object&amp;#39;s location in memory.&lt;br /&gt;&lt;br /&gt;Assuming Google are using modern kernels with ASLR (address space layout randomization), what you may actually be seeing is your requests being answered by 13 physical machines, each of which may have a different getHashCode() result for their Runtime instance, which would be allocated (and assigned a memory location) once, and duplicated for every call to fork() when starting up a &amp;#39;new&amp;#39; JVM to handle a request.&lt;br /&gt;&lt;br /&gt;This is pure speculation, but there are very few sane ways to go from &amp;#39;zero&amp;#39; to hot serving JVM without resorting to fork.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default/7434107364420440127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default/7434107364420440127'/><link rel='alternate' type='text/html' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html?showComment=1244938584567#c7434107364420440127' title=''/><author><name>David</name><uri>http://www.blogger.com/profile/03076592079146860428</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html' ref='tag:blogger.com,1999:blog-4311234419396881619.post-4506520988777011089' source='http://www.blogger.com/feeds/4311234419396881619/posts/default/4506520988777011089' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4311234419396881619.post-1609191154578893635</id><published>2009-05-15T00:25:00.000+02:00</published><updated>2009-05-15T00:25:00.000+02:00</updated><title type='text'>@Matthew: Thanks a lot for your comment! Nice to k...</title><content type='html'>@Matthew: Thanks a lot for your comment! Nice to know that I'm not the only one tinkering with GAE runtime identification :-)&lt;br /&gt;&lt;br /&gt;I'm still seeing varying values of Runtime.getRuntime().hashCode(). My guess would be that you'll see different runtimes if you keep sending additional requests. At times I've seen 10,000 requests in a row being served by the same runtime. &lt;br /&gt;&lt;br /&gt;Please report your findings here if you do some additional testing.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default/1609191154578893635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default/1609191154578893635'/><link rel='alternate' type='text/html' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html?showComment=1242339900000#c1609191154578893635' title=''/><author><name>Stringbuffer.com</name><uri>http://www.blogger.com/profile/13625967709587703071</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17523816686884502859'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html' ref='tag:blogger.com,1999:blog-4311234419396881619.post-4506520988777011089' source='http://www.blogger.com/feeds/4311234419396881619/posts/default/4506520988777011089' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-4311234419396881619.post-6132697158285022594</id><published>2009-05-13T23:46:00.000+02:00</published><updated>2009-05-13T23:46:00.000+02:00</updated><title type='text'>As of last week, I'm getting the same instance (ha...</title><content type='html'>As of last week, I'm getting the same instance (hash) back for all calls to Runtime.getRuntime().hashCode() -- even 10,000 or more of them.  is it possible that they've hijacked this method to try and obfuscate what server is serving up the request?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default/6132697158285022594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4311234419396881619/4506520988777011089/comments/default/6132697158285022594'/><link rel='alternate' type='text/html' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html?showComment=1242251160000#c6132697158285022594' title=''/><author><name>Matthew McCullough</name><uri>http://www.blogger.com/profile/05686012062322691126</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.stringbuffer.com/2009/05/google-app-engine-runtime-switching-and.html' ref='tag:blogger.com,1999:blog-4311234419396881619.post-4506520988777011089' source='http://www.blogger.com/feeds/4311234419396881619/posts/default/4506520988777011089' type='text/html'/></entry></feed>