Ticket #861 (closed clarification: fixed)

Opened 10 months ago

Last modified 6 months ago

it should not take ~100 mulgara queries to build an article

Reported by: russ Assigned to:
Priority: high Milestone:
Component: ambra Version: 0.8.2.1
Keywords: Cc:
Blocking: Blocked By:

Description

is this an OTM issue? how can we economize?

Dependency Graph

Change History

03/21/08 16:06:20 changed by ronald

Agreed - 100 is excessive. I have a hunch that using Views (in 0.9) may help here, but I'd also like to know how come we have 100 currently.

04/22/08 10:27:55 changed by russ

  • blocking changed.
  • blockedby changed.

in 0.8.2.1, it was ~60, which is still too many.

in 0.8.2.2, with serializable cache keys, it was ~120

note that this is fetchArticle.action, getRatings, getTrackbacks, etc. etc. there are at least 3, maybe 5 or more actions that get called with fetchArticle, all involve some interaction with mulgara and some don't cache at all

05/01/08 18:26:17 changed by pradeep

(In [5575]) Added an Interceptor concept for OTM Sessions. This is similar to the Interceptor support provided by Hibernate.

This is to help Ambra resolve a number of tickets related to caching. Please see #900,#901,#829,#845,#861 (and may be more)

As part of this update, please note that the Transaction API has the following additions: 'isActive', 'wasCommitted' and 'wasRolledBack'.

05/01/08 19:18:38 changed by pradeep

(In [5576]) Basic infrastructure support for transactional cache updates and cache invalidations and also support for a journal context aware second-level cache (similar to Hibernate).

Addresses #900,#901,#829,#845,#861.

CacheManager? provides a READ_COMMITTED isolation level. Only cache that is managed by this CacheManager? now is the journal context aware object-cache for OTM. No changes to existing caches or cache-invalidations yet.

05/29/08 09:30:13 changed by rich

  • owner changed from jsuttor to rich.
  • type changed from defect to clarification.
  • milestone set to 0.9.0.

Rich to test cache in multi-stack environment.

06/09/08 16:07:29 changed by amit

  • owner changed from rich to pradeep.

Assigning to Pradeep as we discussed in the conference call.

06/14/08 21:45:44 changed by amit

  • owner changed from pradeep to russ.

Our performance tests should tell us new data.

(follow-up: ↓ 9 ) 06/16/08 20:10:46 changed by amit

  • owner changed from russ to pradeep.

Pradeep, assigning this back to you. Can you please run a quick test and gather some stats with regards to:

  • How many article specific (including annotations, ratings) etc. does it take to fetch a new article (i.e. nothing is in cache)
  • How many queries still go back to the repository once an article has been retrieved at least once?

(in reply to: ↑ 8 ) 06/17/08 11:20:05 changed by pradeep

Replying to amit:

100 or so number is correct. (Depends on the article). But the good news is that for the fetchArticle itself it is not a lot. The rest are for fetchObjects. The fetchObjects seems to be issued in parallel by Firefox and is utilising the multiple-concurrent-read-transactions support in the new mulgara.

This is for the first time an article is accessed. Subsequent accesses are all completely from cache and so no queries.

Here is the break down for fetchArticle:

  1. xacml state-check on the article-doi - 1 query
  2. Article get - 2 queries (get + rdf:List/rdf:Bag query)
  3. Representations - 2 queries (xml, pdf)
  4. List annotations - 3 queries (xacml-revokes, xacml-permit-creator, list query)
  5. Each annotation - 5 queries (xacml-state, xacml-revokes, xacml-permit-creator, xacml-grants, get)
  6. Ratings summary - 3 queries (list of ratings-summary, get on RatingsSummary?, get on RatingsSummaryContent?)
  7. List of track-backs - 1
  8. Each track-back - 2 (Trackback, Body)

Here is the breakdown for fetchObjects:

  1. ObjectInfo? - 2 queries (xacml-state, get)
  2. Representation - 1 per each representation

06/17/08 12:19:33 changed by amit

  • owner deleted.
  • milestone deleted.

Thanks. Moving it out and keeping it open to get some data later from production systems.

07/17/08 13:52:38 changed by amit

  • status changed from new to closed.
  • resolution set to fixed.