• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Help on big relationship
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Help on big relationship


  • Subject: Re: Help on big relationship
  • From: Mike Schrag <email@hidden>
  • Date: Fri, 12 May 2006 16:37:00 -0400

Except that he mentioned it's a many-to-many, so I'm guessing there is a third entity that is unstated that represents the join class? If so, then THAT would get faulted as an array (one huge million element array), but if you traverse through those objects to the DataRecord (or the DataList the other way, assuming it's not flattened), you'd get a million individual faults. Death by a million cuts :)

In one particular case, I have a RawRowList class that supports prefetching. It wraps my raw rows, implements the java.util.List interface and hands back real EOs when I need them. It prefetches ahead of me (when you get an Iterator from it) in blocks of 5 or 10 (or whatever) using. However, this STILL ends up with a big array of raw rows in memory.

ERXBatchingDisplayGroup will do REAL batching for you. I would kill your relationship (that is only going to hurt you), make your own fetch spec, and use ERXBatchingDisplayGroup on it.

ms

On May 12, 2006, at 4:22 PM, Ken Anderson wrote:

Kieran,

First off, I would certainly get rid of the relationship to the million rows - very nasty stuff. I think I could use a little more info on exactly what the data records are for and what type of access pattern you need before I could make any further recommendations.

Oh - in answer to your question, you will only have a single array fault for the million rows until it gets triggered. Then, you'll actually try to load all million rows (so if they actually loaded, they would be real, not faults).

Ken

On May 12, 2006, at 4:11 PM, Kieran Kelleher wrote:

OK, I've seen how to deal with this in the past somewhere on a WWDC video or something, but for the life of me I cannot find the approach right now and I am under the crunch to get this done.

I have DataList objects with up to a million related DataRecord objects. DataList and DataRecord are related in a many-to-many join. Usually a DataRecord belongs to no more than 50 DataLists.

So regular dataList.dataRecords() obviously crashes my app when huge amount of data records in the relationship.

Am I understanding correctly in saying that fetching my one DataList with a million related DataRecords will create a million "faults"?

What is the strategy here?

Is it:
- turn off the dataRecords class property visibility (diamond icon)?
- kill the relationship to dataRecords in the DataList entity and work with qualifiers, fetchspecs and raw rows to grab dataRecords as needed? How does this affect creating relationships .... just always add the DataList to the DataRecord's dataLists relationship?


Any best practice tips, pointers or links to same would be appreciated.

Regards, Kieran
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40anderhome.com


This email sent to email@hidden

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40mdimension.com


This email sent to email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: Help on big relationship
      • From: Guido Neitzer <email@hidden>
    • Re: Help on big relationship
      • From: Mike Schrag <email@hidden>
References: 
 >Help on big relationship (From: Kieran Kelleher <email@hidden>)
 >Re: Help on big relationship (From: Ken Anderson <email@hidden>)

  • Prev by Date: Re: Help on big relationship
  • Next by Date: Sample code wanted...
  • Previous by thread: Re: Help on big relationship
  • Next by thread: Re: Help on big relationship
  • Index(es):
    • Date
    • Thread