Bug 231812 - Performance improvements for reconciler
Summary: Performance improvements for reconciler
Status: RESOLVED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: 3.4   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.4 RC1   Edit
Assignee: DJ Houghton CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2008-05-13 09:56 EDT by DJ Houghton CLA
Modified: 2008-05-15 18:06 EDT (History)
3 users (show)

See Also:


Attachments
patch (7.86 KB, patch)
2008-05-15 15:54 EDT, DJ Houghton CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description DJ Houghton CLA 2008-05-13 09:56:46 EDT
Pascal has suggested that we could add some performance improvements to the reconciler bundle. Loading the repositories is a lot of work we potentially don't have to do, so he had a couple of suggestions:

1). In the Activator/ProfileSynchronizer do timestamp checking to see if we actually have changes in the dropins/platform.xml/plugins folder.

2). Add logic to the DirectoryWatcher so it knows whether or not things have changed since the last session. We do a lot of work when we poll because all the files are called with #added and then the #isInterested call tries to determine if our listener is interested in the file.
Comment 1 DJ Houghton CLA 2008-05-13 14:35:42 EDT
Oh yeah, and a third possible solution was to create a proxy-repo that actually didn't load at first. I knew there was one option I forgot to list. ;-)
Comment 2 DJ Houghton CLA 2008-05-15 15:54:04 EDT
Created attachment 100537 [details]
patch

As we know from previous experience, when you are dealing with a FAT32 filesystem (as opposed to an NTFS one) and you change the contents of a directory, the timestamp of the directory does not change. 

I looked at the old update manager code in the configurator and it actually didn't handle this case either so I don't think that we have to worry about it. If the user wants to force reconciliation on startup, then they can use the osgi.checkConfiguration system property.

I have attached a first attempt at a patch. It needs more testing.
Comment 3 DJ Houghton CLA 2008-05-15 18:06:12 EDT
Pascal and I have reviewed this and tested it.
Released to HEAD.