Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 338600

Summary: [perf] Serialization optimizations for LocalMetadataRepository
Product: [Eclipse Project] Equinox Reporter: DJ Houghton <dj.houghton>
Component: p2Assignee: DJ Houghton <dj.houghton>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 3.6.2   
Target Milestone: 3.6.2+   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:
Bug Depends on: 338599    
Bug Blocks:    
Attachments:
Description Flags
patch for 3.6.x stream none

Description DJ Houghton CLA 2011-03-01 17:40:29 EST
Cloned to track backport to the R36x branch.

+++ This bug was initially created as a clone of Bug #338599 +++

When looking at the serialization code for LocalMetadataRepository, it appears that whenever we add a site reference, we mark the repo as dirty and re-write the repository. 

In a lot of cases, the references will be the same across multiple features and as the number of features grow, the problem becomes more apparent. This was noticed in a scenario in which the reconciler was being used to install roughly 2000 features. 

We should check to make sure that we really did add a new reference before writing out the repository.
Comment 1 DJ Houghton CLA 2011-03-01 18:41:47 EST
Created attachment 190101 [details]
patch for 3.6.x stream
Comment 2 DJ Houghton CLA 2011-03-02 09:04:17 EST
Released to maintenance branch.
Comment 3 DJ Houghton CLA 2011-03-02 09:06:56 EST
Effected JAR is: 
  org.eclipse.equinox.p2.metadata.repository_1.1.1.R36x_v20110302.jar