Skip to main content

Posts

Showing posts with the label appengine

Looking for alternative to Google App Engine? Wait!

The recent news about Google App Engine has taken the developer community by a surprise. There is a lot of hue and cry. Some have claimed that they have been betrayed, lost trust. Some even thought the rug got pulled out from under them. Some have even warned this as Google's biggest mistake that could cost them dearly. But is it really that big of a deal? How much of this is a concern?

Big news for AppEngine - AlwaysOn Instances

Finally, AppEngine team got us the best gift of all for this holidays. AppEngine 1.4.0 , Always-On Instances and more. And Just $9 a month buys you 3 instances that can stay alive – even on low or no traffic. Those sites you want to host on spring, or even grails – which left you worried about darn bad startup times – You can host now with AppEngine worry free. Also, Channel API is a new introduction. Gives an asynchronous real-time two way communication mechanism with JavaScript enabled clients - aka Browser Push (Comet) communication. It would be interesting to see the ideas people will come up with. Google lifted/increased a few limits on different APIs  to somewhat gracious levels. These may not be significant for most apps, but will definitely free your mind of concern

Use E-Tags and Cache-Control: Caching your Dynamic web Content Better

This site rendered js and css (now even images) dynamically. Contents of files are stored in Google BigTable Datastore and are served by a DynServlet. The DynServlet maps the name of the file to content of the file in DB. This was slowly using up a lot of resources. Adding a layer of memcache, saved some Datastore API calls. But the memcache calls were still significant. So an ETag mechanism is introduced. A Global ETag is generated on any file posted or updated, and (G-ETag is) stored in Datastore. To save App Engine resources (which are counted to cost), the ETag header is obtained from each request checked with GDTS from backend. If it is the same a "304 – Not Modified" response is sent back, asking the client to use the local cache copy. If it is not exactly same, a the request is passed through and rendered dynamically. This guarantees all content will be served fresh after every deployment. Requests in between deployments may be served from client-side cache, because ...