thanks Jason
On Sep 10, 2:00 pm, "Jason (Google)" <apija...@google.com> wrote:
> All standalone entities are in their own entity group by default. To put an
> entity in another entity, you use an owned relationship, and we have a
> section in our docs for that:
>
> http://code.google.com/appengine/docs/java/datastore/relationships.ht...
>
> - Jason
>
>
>
> On Tue, Sep 8, 2009 at 8:18 PM, Larry Cable <larry.ca...@gmail.com> wrote:
>
> > any documentation or comments on how JPA/JDO map their entities and
> > identities onto entity groups?
>
> > On Sep 8, 2:16 pm, "Jason (Google)" <apija...@google.com> wrote:
> > > If you're trying to achieve high write throughput, as it sounds like you
> > are
> > > since you have 1,000,000 entities to write, you should be designing your
> > > schema to minimize the number of entities in an entity group. These and
> > > other general tips are listed here:
>
> > >http://code.google.com/appengine/docs/python/datastore/keysandentityg...
>
> > > Putting all of your entities in a single group significantly impairs your
> > > application's ability to update entities since entities can no longer be
> > > written in parallel. Large entity groups will work fine if your entities
> > > aren't being updated very often (generally 1-10 per second, max), but if
> > you
> > > want to do massive bulk writes like this, I suggest re-thinking your
> > design
> > > with this in mind. Even if you can't rollback the entire write, doing a
> > > batch put of entities in separate entity groups should thrown an
> > exception
> > > in the event of a failure which you can catch and re-try the write for
> > the
> > > single affected entity.
>
> > > - Jason
>
> > > On Sun, Sep 6, 2009 at 5:12 PM, Nicholas Albion <nalb...@gmail.com>
> > wrote:
>
> > > > On Sep 5, 10:24 am, "Jason (Google)" <apija...@google.com> wrote:
> > > > > Batch puts are supported, yes, and as of yesterday's release, calling
> > > > > makePersistentAll (JDO) and the equivalent JPA call will take
> > advantage
> > > > of
> > > > > this support (previously, you had to use the low-level API).
>
> > > > > Two quick notes:
>
> > > > > 1) All of the entities that you're persisting should be in separate
> > > > entity
> > > > > groups since two entities in the same entity group can't be written
> > to
> > > > > consecutively, and you will see datastore timeout exceptions if many
> > > > > simultaneous write requests come in for the same entity or entity
> > group.
>
> > > > Sorry Jason, I'm a bit confused now. Wouldn't that be the most common
> > > > use case for batch puts? According to the GAE documentation, this is
> > > > the main point of entity groups:
> > > > "App Engine creates related entities in entity groups automatically
> > > > to support updating related objects together"
>
> > > > ...so you can add them together _logically_ but not chronologically?
> > > > I've got several cases where I'd have 50,000 to 1000,000 records which
> > > > logically belong to a single parent entity. If I need to add them to
> > > > the datastore individually it's going to take about somewhere between
> > > > 2 to 24 hours to write them all (spread across multiple HTTP requests
> > > > in any case). If I could batch put the data (within the same entity
> > > > group) I imagine that the time would be reduced significantly.
>
> > > > > 2) Batch puts do not operate in a transaction. This means that some
> > > > writes
> > > > > may succeed but others may not, so if you need the ability to
> > rollback,
> > > > > you'll need transactions.
>
> > > > Do you mean that if necessary, the call to makePersistentAll() should
> > > > be wrapped in a transaction, or that makePersistentAll() _can_not_ be
> > > > wrapped in a transaction?- Hide quoted text -
>
> > > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com
To unsubscribe from this group, send email to
google-appengine-java+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---