Ticket #627 (closed defect: fixed)

Opened 1 year ago

Last modified 1 month ago

Lazy loading of collection objects is needed for performance.

Reported by: amit Assigned to: pradeep
Priority: critical Milestone:
Component: topaz Version: 0.8
Keywords: lazy-loading Cc:
Blocking: Blocked By:

Description

So far we have managed to put off lazy loading of objects, but with the amount of data beginning to increase, afraid this cannot be put off much further. In r3624, Ronald modified Set to List to work around this problem, but something that really needs a proper solution.

Dependency Graph

Change History

(follow-up: ↓ 2 ) 09/04/07 22:50:53 changed by amit

  • summary changed from Lazy loading of objects is needed for performance. to Lazy loading of collection objects is needed for performance..
  • milestone deleted.

After talking to the team today, it appears the changing the Set to List works for the short term and we really do not need lazy loading for collection objects right now. More risk mitigation, taking it out of 0.81. Also made the description precise.

(in reply to: ↑ 1 ) 09/05/07 13:06:29 changed by ronald

Replying to amit:

After talking to the team today, it appears the changing the Set to List works for the short term and we really do not need lazy loading for collection objects right now. More risk mitigation, taking it out of 0.81. Also made the description precise.

No, I don't think that is the correct characterization. The Set->List changes will be reverted soon again - it's just that those objects will not be loaded like that anymore after the browse-service rework. I.e. the stuff that got affected most by the eager loading and for which this hack was done is being rewritten to not use those classes anymore. So yes, lazy collections are not a high priority anymore currently, but that's because we're removing the code paths that most needed them.

01/11/08 08:15:17 changed by amit

  • milestone set to pubApp_0.8.2.1.

Status of this one?

01/11/08 11:43:18 changed by amit

  • milestone changed from pubApp_0.8.2.1 to 0.8.3.

01/31/08 14:02:30 changed by pradeep

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

(In [4605]) Implement lazy loading for collections of associations. All that is lazily done is the creation of the collection containing associations obtained via session.load(). No changes to the ITQL query and therefore the association-ids and the type-look-ahead information is still loaded.

However this lazy load has the advantage that java.util.Set impls don't force load the association. This fixes #627. Now at least a collection's semantics need not be compromised for performance. ie. we can now use java.util.Set where that is needed instead of the java.util.List that was used for performance reasons.

Also see the notes in http://lists.topazproject.org/pipermail/topaz-dev/2008-January/000063.html

07/16/08 11:00:19 changed by

  • milestone deleted.

Milestone 0.8.3 deleted