angie: changes by commit
switch to grouped by file view, user index
review to branch (2009-11-03 to 2009-11-10) v219
- It's not sufficient to test existence of a path in udcFuse, because empty directories are left behind when bitmap and sparseData files are cleaned up, and then udcFuse will show the directory. So test whether a udcFuse path is a regular file (as a dir with bitmap and sparseData files will appear). Also, test existence of index files independently from .bam, and look for both index possibilities as udcFuse paths before attempting the costly udc open.
- src/hg/lib/bamFile.c 1.13 - lines changed: 49, context: html, text, full: html, text
- Handle chromosomes setting in customTrackUpdateFromSettings, to avoid hgTracks loading overhead for a custom track that has no data on the current chrom.
- src/hg/lib/customFactory.c 1.108 - lines changed: 2, context: html, text, full: html, text
- Yikes! Stray 'else' could have led to mem corruption (use after free).
- More changes motivated by udcFuse performance: added udcCacheAge, udcCacheTimeout and udcSetCacheTimeout. If cache files exist and are younger than the cache timeout threshold, don't fetch info from the remote server when opening, just use size and date from bitmap file. This saves 0.8s per open for ftp to NCBI. By default, cache timeout is 0 (same behavior as before -- always fetch info).
- Set the udc cache timeout to an hour [need to add refresh button to hgTrackUi, then can make timeout very large], and if cache files are younger than that, use kernel caching (on top of udc's faster open) for almost-local performance.
- src/fuse/udcFuse/udcFuse.c 1.2 - lines changed: 7, context: html, text, full: html, text
- Don't use kentlib free functions on mem returned from samtools, because kentlib functions weren't used to allocate it.
- src/hg/lib/bamFile.c 1.14 - lines changed: 2, context: html, text, full: html, text
- Oops, forgot that file size really needs to be a long long.
- Added #ifdef USE_FUSE wrapper so this won't break compiles on machines that don't have fuse installed (thanks Mark!). Also, use appropriately sized int for cache file size, and merge adjacent errCatch wrappers.
- src/fuse/udcFuse/udcFuse.c 1.3 - lines changed: 7, context: html, text, full: html, text
- Added off-by-default USE_FUSE so udcFuse won't break compiles on machines that don't have fuse installed (thanks Mark!).
- src/inc/common.mk 1.74 - lines changed: 9, context: html, text, full: html, text
- Added customFactoryEnableExtraChecking, intended to be called only by hgCustom. When the user first loads a custom track, it's a good time for more expensive testing (like opening remote BAM files). However, hgTracks etc. can save time by not duplicating that work every time they parse existing tracks. Currently only bamLoader uses this.
- src/hg/inc/customFactory.h 1.16 - lines changed: 5, context: html, text, full: html, text
- src/hg/lib/customFactory.c 1.109 - lines changed: 15, context: html, text, full: html, text
- Call customFactoryEnableExtraChecking -- initial load is a good time to perform more expensive tests.
- src/hg/hgCustom/hgCustom.c 1.134 - lines changed: 1, context: html, text, full: html, text
- Doh, forgot to leave in a dummy main when USE_FUSE is not defined (thanks Tim!).
- src/fuse/udcFuse/udcFuse.c 1.4 - lines changed: 8, context: html, text, full: html, text
- Don't add -lfuse here, leave that to common.mk if USE_FUSE==1.
- src/fuse/udcFuse/makefile 1.2 - lines changed: 1, context: html, text, full: html, text
switch to grouped by file view, user index