Efficient way to store comments in Google App Engine?
If comments are threaded, storing them as separate entities might make sense.
If comments can be the target of voting, storing them as separate entities makes sense.
If comments can be edited, storing them as separate entities reduces contention, and avoids having to either do pessimistic locking on all comments, or risk situations where the last edit overwrites prior edits.
If you can page through comments, storing them as separate entities makes sense for multiple reasons, indexing being one.
With Google App Engine, an entity is limited to 1 MB in size. Say I have a blog system, and expect thousands of comments on each article, some paragraphs in lengths. Typically, without a limit, you'd just store all the comments in the same entity as the blog post. But here, there would be concerns about reaching the 1 MB limit.
The other possible way, though far less efficient, is to store each comment as a separate entity, but that would require several, several reads to get all comments instead of just 1 read to get the blog post and its comments (if they were in the same entity).
What's an efficient way to handle a case like this?