Hi,

Question from side: do Payment & Invoice belong to the same entity
group as Party ? I ask this because of the transactional implications
it will have when you modify keys in Payments & Invoices.

regards
didier

On Oct 30, 5:04 am, aswath satrasala <aswath.satras...@gmail.com>
wrote:
> Hi,
> Further, on this... which leads to how changing of the namespace can be done
> using mapreduce.
>
> If I recreate entities, then if the keys are stored as references in other
> entities also needs to be recreated.
> Ex.
> class Party {
>   @Long id
>   Key<Tenant> tenantKey;  // partitioning/filtering
>   String fname
>
> }
>
> I have several other entitities dependent on the Party Key.
> class Invoice {
> �...@long id
>  Key<party> partyKey
>  ...}
>
> class Payment {
> �...@long id
>  Key<Party> partyKey
>
> }
>
> All invoices/Payments has to be re-created.
>
> So, how can this be done using mapreduce jobs.  One option is
> - Using mapreduce, all the Party entities are recreated.  The originalkey
> and the newkey is stored in a different mapping table, something like this
> and operates in the empty namespace.
> class MigrationMappingKeys {
> @Long id;
> Key<Party> oldKey
> Key<Party> newKey
>
> }
>
> Then, I run the mapreduce job on the Invoice and Payment, and recreate based
> on the above class.
>
> Any other options...?
> -Aswath
>
> On Thu, Oct 28, 2010 at 3:25 PM, Didier Durand <durand.did...@gmail.com>wrote:
>
> > Hi,
>
> >http://code.google.com/appengine/docs/java/javadoc/com/google/appengi...
> > says
>
> > "When a namespace aware class (e.g., Key, Query and MemcacheService)
> > is constructed, it determines which namespace will be used by calling
> > get() if it is otherwise unspecified. If get() returns null, the
> > current namespace is unset and these APIs will use the empty ("")
> > namespace in its place. "
>
> > So, I would guess that you have to recreate / copy your entities after
> > having set namespace via NameSpaceManager.set() if you want to move
> > them into a new namespace
>
> > regards
> > didier
>
> > On Oct 28, 11:34 am, aswath satrasala <aswath.satras...@gmail.com>
> > wrote:
> > > Hello,
> > > I have an multi-tenant app-id, and I have designed on partitioning the
> > > entities based on  url parameters.  I am not using the namespace yet.
>
> > > For example,
>
> > > Tenant {
> > > @Id name+email;
>
> > > }
>
> > > class Party {
> > >   @Long id
> > >   Key<Tenant> tenantKey;  // partitioning/filtering
> > >   String fname
>
> > > }
>
> > > Now, I am planning to use the NamespaceManager for the Party entities.  I
> > > want to use the mapreduce and apply the namespace on the existing Party
> > > entities.
> > > Can a namespace be changed from empty to certain value on the existing
> > > entity.
>
> > > -Aswathhttp://vs-accounting.appspot.com
>
> > --
> > 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-j...@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> > .
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine-java?hl=en.

-- 
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-j...@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.

Reply via email to