This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 123542 - Simplify MasterFS, do not delegate on other embedded FS
Summary: Simplify MasterFS, do not delegate on other embedded FS
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Filesystems (show other bugs)
Version: 6.x
Hardware: All All
: P2 blocker (vote)
Assignee: rmatous
URL:
Keywords: PERFORMANCE, PLAN
Depends on:
Blocks:
 
Reported: 2007-12-06 08:43 UTC by rmatous
Modified: 2008-12-22 11:45 UTC (History)
6 users (show)

See Also:
Issue Type: TASK
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description rmatous 2007-12-06 08:43:56 UTC
Meant actually: stop support old generic vcs
Comment 1 rmatous 2007-12-06 09:01:59 UTC
Expected gain - memory, performance:
- <= 50 % instances of FO in memory at any time
- FO is instantiated without need to instantiate all its parents forming the whole path, which means there is no need to
touch(stat) all such files when new FO is instantiated (even more whenever the file is taken from cache of alive FOs) 
- less FO in memory => faster refresh 
- for any 1..n direct/indirect childs of folder "A" is true, that the String "A" is kept in memory just 1..2 times 
Comment 2 rmatous 2007-12-06 09:06:08 UTC
created branch, currently containing inception impl., which I consider sufficient for analysing performance gain:
Tag: masterfs_novcs
User: rmatous Date: 2007/12/05 11:10:31  
Comment 3 rmatous 2007-12-06 09:15:50 UTC
Guys from perf.team - wouldn't you like to spend a little time on perf.analyse to confirm or reject my expectations? 
Comment 4 Pavel Flaska 2007-12-07 09:30:55 UTC
Thanks. I take care of it.

First of all, I'll do preliminary evaluation. I'll try to make:
i) summary of file object instances in several basic scenarios.
ii) summary of I/O access in defined use-cases.
iii) compare the results for the trunk build and masterfs_novcs branch.

It doesn't answer the exact gain, but if i) and ii) confirm that there are fewer number of instances, we can expect
improvement reallyl important. Then, we have to try to measure exact values to correctly quantify the time reduction in
several use-cases.
Comment 5 Pavel Flaska 2007-12-10 21:20:11 UTC
I used a scenario with several projects opened, located on network disk and the exactly same scenario in trunk build and
masterfs_nocvs branch. Here are some preliminary results (from refresh-after-window-activated):

trunk
time 4288ms, folder instances 2320, FileObj instances 4688

masterfs_novcs
time 2687ms, folder instances 1500, FileObj instances 2236

Branch results makes 62% total time consumption in relation to trunk (100%).
This preliminary results show really huge improvement and are based on results from profiler. I'll make another testing
later to ensure that results are correct.
Comment 6 rmatous 2007-12-11 10:26:03 UTC
Almost 40% on refresh, glad to hear about first prove of perf.enhanc., Pavel. Refresh isn't hopefully the only scenario
where we can benefit from it.

Moreover performance isn't the only aspect why to go this way.
Comment 7 rmatous 2008-01-08 13:45:13 UTC
/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/Deadlock54741.java,v  <--  Deadlock54741.java
new revision: delete; previous revision: 1.4

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/ResourcePathTest.java,v  <--  ResourcePathTest.java
new revision: delete; previous revision: 1.3

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/CacheTest.java,v  <--  CacheTest.java
new revision: delete; previous revision: 1.6

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileSystemWithExtensionsTest.java,v  <-- 
MasterFileSystemWithExtensionsTest.java
new revision: delete; previous revision: 1.5

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileObjectTestHid.java,v  <-- 
MasterFileObjectTestHid.java
new revision: delete; previous revision: 1.41

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileSystemOnTopOfLocalFSTest.java,v  <-- 
MasterFileSystemOnTopOfLocalFSTest.java
new revision: delete; previous revision: 1.3

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileSystemTest.java,v  <-- 
MasterFileSystemTest.java
new revision: delete; previous revision: 1.11

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/Deadlock73332.java,v  <--  Deadlock73332.java
new revision: delete; previous revision: 1.3

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterURLMapperTest.java,v  <--  MasterURLMapperTest.java
new revision: delete; previous revision: 1.3

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/Delegate.java,v  <--  Delegate.java
new revision: delete; previous revision: 1.28

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MountTable.java,v  <--  MountTable.java
new revision: delete; previous revision: 1.22

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/ProviderCall.java,v  <--  ProviderCall.java
new revision: delete; previous revision: 1.7

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/Cache.java,v  <--  Cache.java
new revision: delete; previous revision: 1.10

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/Utils.java,v  <--  Utils.java
new revision: delete; previous revision: 1.6

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterURLMapper.java,v  <--  MasterURLMapper.java
new revision: delete; previous revision: 1.19

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/SyncSection.java,v  <--  SyncSection.java
new revision: delete; previous revision: 1.3

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/BasedOnResourcePath.java,v  <--  BasedOnResourcePath.java
new revision: delete; previous revision: 1.5

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/ResourcePath.java,v  <--  ResourcePath.java
new revision: delete; previous revision: 1.13

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/InternalMountSupport.java,v  <--  InternalMountSupport.java
new revision: delete; previous revision: 1.3

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileObject.java,v  <--  MasterFileObject.java
new revision: delete; previous revision: 1.67

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/SpecialDelegates.java,v  <--  SpecialDelegates.java
new revision: delete; previous revision: 1.18

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileSystem.java,v  <--  MasterFileSystem.java
new revision: delete; previous revision: 1.26

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/APIAccess.java,v  <--  APIAccess.java
new revision: delete; previous revision: 1.5

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/AnnotationProvider.java,v  <--  AnnotationProvider.java
new revision: 1.7; previous revision: 1.6

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/AutoMountProvider.java,v  <--  AutoMountProvider.java
new revision: delete; previous revision: 1.4

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/FileSystemProvider.java,v  <--  FileSystemProvider.java
new revision: delete; previous revision: 1.3

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/MountSupport.java,v  <--  MountSupport.java
new revision: delete; previous revision: 1.4

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/utils/FileInfo.java,v  <--  FileInfo.java
new revision: 1.16; previous revision: 1.15

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedFileSystemWithExtensionsTest.java,v
 <--  FileBasedFileSystemWithExtensionsTest.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedFileSystem2Test.java,v  <-- 
FileBasedFileSystem2Test.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/BaseFileObjectTestHid.java,v  <-- 
BaseFileObjectTestHid.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/Deadlock54741.java,v  <--  Deadlock54741.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/Deadlock73332.java,v  <--  Deadlock73332.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedFileSystemTest.java,v  <-- 
FileBasedFileSystemTest.java
new revision: 1.3; previous revision: 1.2

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedURLMapperTest.java,v  <-- 
FileBasedURLMapperTest.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/WriteLockFactory.java,v  <-- 
WriteLockFactory.java
new revision: delete; previous revision: 1.7

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/BaseFileObj.java,v  <--  BaseFileObj.java
new revision: 1.35; previous revision: 1.34

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/WriteLock.java,v  <--  WriteLock.java
new revision: delete; previous revision: 1.17

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObj.java,v  <--  FileObj.java
new revision: 1.26; previous revision: 1.25

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/LockForFile.java,v  <--  LockForFile.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObj.java,v  <--  FolderObj.java
new revision: 1.27; previous revision: 1.26

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObjectFactory.java,v  <-- 
FileObjectFactory.java
new revision: 1.20; previous revision: 1.19

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/RootObj.java,v  <--  RootObj.java
new revision: 1.6; previous revision: 1.5

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObjTest.java,v  <-- 
FolderObjTest.java
new revision: 1.25; previous revision: 1.24

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/WriteLockTest.java,v  <-- 
WriteLockTest.java
new revision: delete; previous revision: 1.7

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/StatFiles.java,v  <-- 
StatFiles.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObjectFactoryTest.java,v 
<--  FileObjectFactoryTest.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/StatFilesTest.java,v  <-- 
StatFilesTest.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/LockForFileTest.java,v  <-- 
LockForFileTest.java
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/nbproject/project.properties,v  <--  project.properties
new revision: 1.17; previous revision: 1.16

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/children/ChildrenSupport.java,v  <-- 
ChildrenSupport.java
new revision: 1.18; previous revision: 1.17

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedURLMapper.java,v  <--  FileBasedURLMapper.java
new revision: 1.7; previous revision: 1.6

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedFileSystem.java,v  <-- 
FileBasedFileSystem.java
new revision: 1.17; previous revision: 1.16

/cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java,v  <-- 
ProvidedExtensionsTest.java
new revision: 1.11; previous revision: 1.10

/cvs/openide/masterfs/src/META-INF/services/org.openide.filesystems.URLMapper,v  <--  org.openide.filesystems.URLMapper
new revision: 1.2; previous revision: 1.1

/cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/NamingFactory.java,v  <--  NamingFactory.java
new revision: 1.16; previous revision: 1.15