Search code examples
performancegoogle-app-enginemodelexpando

Is it bad for performance to have an App Engine expando model with a huge number of properties?


I've been using a pattern in an application where I'm setting arbitrary attributes on Expando class models in an App Engine app.

This works as expected, but hasn't yet been tested with a really large data set. And over time, the number of attributes might get to be > 1000.

It also makes the table in the administration console scroll far to the right, since it needs a column for each attribute.

I figured I might save myself and others from a major pita by asking about this.


Solution

  • Only properties that have values set to them will get indexed. This can be a PITA when you're trying to find all People without a LastName set. In your case though it works out perfectly - for small entities updating the indexes will be fast, but large cases will still be possible. Beware the upper limit on index entries per entity - I think it's 5000 right now.