AppDB

Navraj Chohan edited this page Mar 12, 2015 · 5 revisions

Executive Summary: Configures and deploys datastores needed for the Google App Engine datastore API.

Why do we need it?

Google App Engine applications generally need to persist some state. The AppDB component allows for different NoSQL technologies to plug into AppScale.

What does it do, and how does it do it?

It persist data by providing a REST interface for AppServers to request database operations. Requests are sent in protocol buffer serialization. Request include: Put, Get, Delete, Query, BeginTransaction, CommitTransaction.

When does it do it?

Whenever an application does a call to the datastore API.

Where does it do it?

AppDB runs on any node which has a database role, whether it be a master or a slave.

Developer stuff

AppDB code is mostly written in Python, although the start scripts for Cassandra and ZooKeeper are in Ruby. The code can be found in appscale/AppDB. The high level web service is datastore_server.py and runs on port 8888.

Tests are written with test/unit and flexmock. You can run all the tests in a given directory with "nosestest".