Chris,
You'll only have an 'exploding index problem' in cases you explicitly add an index.yaml entry for multiple repeated properties, and when objects saved to the table have too many multiple properties.
In the example, does your index.yaml add this index?
- kind: widget
properties:
- name: mamas_list
- name: papas_list
If you save the sample object to the datastore:
widget(mamas_list=['a', 'b'], papas_list['c', 'd']).put()
There will be 4 different indexes to be saved:
['a', 'c'] ['a', 'd'] ['b', 'c'] ['b', 'd']
The whole purpose of adding this index would be to allow querying by these 2 properties:
widget.query().filter(mamas_list=='a').filter(papas_list=='d').fetch()
You could always avoid an exploding index (not found in this sample case), using the zig-zag algorithm indexes:
http://www.google.com/events/io/2010/sessions/next-gen-queries-appengine.html