• 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: EO Caching
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: EO Caching


  • Subject: Re: EO Caching
  • From: Chuck Hill <email@hidden>
  • Date: Fri, 7 Dec 2007 14:11:01 -0800


On Dec 7, 2007, at 1:56 PM, Jeffrey Simpson wrote:

Thanks for the prompt reply. I forgot to mention we have our own batch
fetching that does a objectByPrimary key with a delegate that does not do a
database fetch to weed out the object in memory.

Not too sure what you are doing there or if that is a good idea...


I discovered that by having the ecs use strong references it did what I
wanted.

What you probably want is to have the ec at the application level and also an NSArray of the cached objects held by application. Otherwise the effect on memory usage will likely be unpleasant.



I also found out that is took to long to start an instance.

er, how many objects are you caching here?


In our system each session has a default editing context that we only use
for querying. Any thoughts on every session sharing the same default ec?
This way the cache would slowly build.

As the session locks the default EC at the very, very least you would have an application with effectively no concurrent access. That seems like a rather high price to pay in terms of the number of instances you would probably have to have running.



I think the real answer is for us to slowly rewrite our application to use
more raw rows.

That may be. It really depends on what your model looks like, how much data you have, and what you need to do.


Chuck


On 12/7/07 1:41 PM, "Chuck Hill" <email@hidden> wrote:


On Dec 7, 2007, at 7:01 AM, Jeffrey Simpson wrote:

I want to preload some EOs and so they are cached.  I have set
ERXEC.setDefaultFetchTimestampLag(86400000);

That only applies to faulting, not fetching. You might want to look at the much feared EOSharedEditingContext or at Wonder's EO caching classes (there are three or so, IIRC). Also look at the "Cache in memory" setting in EOModeler.


I preload my EOs and do some
batch fetching. Later on I use a fetch spec to query from the
database some
of the cached EOs. They are fully fetched which I understand is the
case.
When I then batch fetch these EOs the system always runs fetches.

It is not clear to me what code you are using here. I will note that
all fetches (ec.objectsWithFetchSpecification) go to the database,
even if the fetched data is then discarded. Batch fetching is a fetch.



The time
between this fetch and the preloading is < 5 minutes.  If I run the
same
query in a the same ec then the EOs are cached.  Any idea of why
there is no
caching between the 2 ecs?

No, not without a clearer understanding of your code.

Chuck


Jeffrey Simpson
Youth For Understanding USA
email@hidden
Telephone: (240) 235-2114
FAX: (202) 235-2104

Preparing young people for their responsibilities and opportunities in a
changing, interdependent world.








--

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects






_______________________________________________
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


References: 
 >Re: EO Caching (From: Jeffrey Simpson <email@hidden>)

  • Prev by Date: Re: EO Caching
  • Next by Date: Re: how can I return form results in a new window?
  • Previous by thread: Re: EO Caching
  • Next by thread: Re: EO Caching
  • Index(es):
    • Date
    • Thread