I'm new to sharding and am a little stuck on how to implement the toy
problem below.  Basically I have a many-to-one relationship between a
Company and Employees, and I want shards which are partitioned
according to company name.  My naive approach is to replicate and
rename the tables.

   (1) Is there a better approach?
   (2) How do I switch context effectively to use the correct
          my request handlers?

Thanks!
Andy


# (from my models.py)
#  # I start with these two models, then shard by company
#  class Company(db.Model):
#     name=db.StringProperty(required=True)
#
#  class Employee(db.Model):
#     lastname=db.StringProperty(required=True)
#     company=db.ReferenceProperty(Company,
collection_name='employees')

# Company 'Foo' and it's employees
class Company_Foo(db.Model):
   name=db.StringProperty(required=True)

class Employee_Foo(db.Model):
   lastname=db.StringProperty(required=True)
   company=db.ReferenceProperty(Company_Foo,
collection_name='employees')

# company 'Bar' and it's employees
class Company_Bar(db.Model):
   name=db.StringProperty(required=True)

class Employee_Bar(db.Model):
   lastname=db.StringProperty(required=True)
   company=db.ReferenceProperty(Company_Bar,
collection_name='employees')



# (from my handlers.py)
# other imports here
from models import *      # potentially hundreds of model shards!?

def MyHandler(webpp.RequestHandler):
   def post(self):
      company_id=get_from_request(self)
      if company_id == 'Foo':
           my_emp=Employee_Foo.gql(...)
      else:
           my_emp=Employee_Bar.gql(...)
-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.


Reply via email to