Please note that the contents of this offline web site may be out of date. To access the most recent documentation visit the online version .
Note that links that point to online resources are green in color and will open in a new window.
We would love it if you could give us feedback about this material by filling this form (You have to be online to fill it)



Mastering the datastore

Unlike most other web application development environments, App Engine's data storage service is not based on a relational database management system. Instead, App Engine's datastore ( Python | Java ) is built on top of Bigtable , and this will likely require you to re-think the methods that you have traditionally used when modeling and querying for data.

In this article series, we aim to provide information supplementary to the datastore documentation that should help provide a better understanding of how the datastore works, how to deal with issues related to using a distributed storage system, and provide best practices on techniques to model and retrieve your data. The articles in this series include:

Life of a Datastore Write
Learn everything that occurs behind-the-scenes when an entity is written to the datastore
Transaction Isolation in App Engine
Explains how concurrent reads and writes behave both in and outside of transactions
How Index Building Works
Explains the back-end processes used to build and delete composite indexes
How Entities and Indexes are Stored
Provides detailed descriptions of the Bigtables used to store entities and indexes
Modeling Entity Relationships
Explains the basics of modeling entity relationships
Updating Your Model's Schema
Discusses strategies for updating datastore schemas
Handling Datastore Errors
Learn why datastore errors occur and how to deal with them
Index Selection and Advanced Search
Learn how recent improvements to the query planner have made exploding indexes a thing of the past and how to implement an "advanced search" function in your application.

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.