My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Links

Implementation of the Google App Engine Datastore in Java 6 using (initially) hbase and hadoop as the bigtable and gfs implementations.

In an interview with InfoQ the hbase project leads said:

"...an implementation of the Google App Engine DataStore API that went against HBase and that parsed GQL, etc., is a contribution we wouldn't say no to."

I've been looking at doing a project using hbase (it seems the closest to bigtable I can find). I've also done some work on google appengine and really like their datastore. I've looked at some of the ORM'ish things linked from the wiki but found none of them came close to datastore.

With that said, I've started implementing the Google App Engine DataStore API in java. You can find the source here:

http://code.google.com/p/datastore/source/browse/

I got a lot of information from this talk at goole i/o

It is rough at this point.

Current capabilities:

  • get/put/delete Model objects.
  • query for all of one kind of Model
  • parse simple gql (SELECT * FROM Person LIMIT 20, 100)

Future capabilities:

  • be as close as possible (within java's limits) to the datasore api
  • be compatible with index.yaml
  • have different implementations (such as hypertable)

Differences: Python's dynamic nature means there will be differences with a java api. Here are some of them.

  • overriding static methods
  • python: Person.all() 
    java: Datastore.all(Person.class)
  • keyword arguments
  • python: s = Story(title="The Three Little Pigs")
    java: Store s = new Story(); s.setTitle("...")
    python: Story.get_by_id(123, parent=parentStory)
    java: Datastore.getById(parentStory, 123);
  • dynamic properties
  • python: name = db.StringProperty(required=True)
    java: @StringProperty(required=true) String name;
Powered by Google Project Hosting