summaryrefslogtreecommitdiffstats
path: root/src/H5Fistore.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r8616] Purpose:Quincey Koziol2004-06-051-3141/+0
| | | | | | | | Rename these files Description: Since these files contain functions that are part of the dataset information now, rename them to H5D<foo>.c
* [svn-r8613] Purpose:Quincey Koziol2004-06-051-536/+499
| | | | | | | | | | | | | | | | | Refactor code Description: Move chunk and contiguous cached raw data from file information to dataset information. This simplifies a number of internal interfaces, aligns the code with it's purpose better and should allow more optimizations to the chunked data I/O performance. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) h5committest Misc. update:
* [svn-r8600] Purpose:Quincey Koziol2004-05-311-51/+183
| | | | | | | | | | | | | Code optimization Description: Don't recompute the internal index value for looking up the chunk in the hash table, just use the value already computed from iterating through the chunks. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel
* [svn-r8590] Purpose:Quincey Koziol2004-05-271-110/+112
| | | | | | | | | | | | | | | | | | | | | Code optimization & bug fix Description: When dimension information is being stored in the storage layout message on disk, it is stored as 32-bit quantities, possibly truncating the dimension information, if a dimension is greater than 32-bits in size. Solution: Fix the storage layout message problem by revising file format to not store dimension information, since it is already available in the dataspace. Also revise the storage layout data structures to be more compartmentalized for the information for contiguous, chunked and compact storage. Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel Solaris 2.7 (arabica) h5committest
* [svn-r8474] Purpose:Quincey Koziol2004-05-031-35/+36
| | | | | | | | | | | | Code optimization Description: Reduce amount of information allocated/freed for chunk cache. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/paralell) too minor to require h5committest
* [svn-r8472] Purpose:Quincey Koziol2004-05-031-10/+2
| | | | | | | | | | | | | Code optimization Description: Eliminate the B-tree "split_ratios" as a parameter and pull it from the DXPL instead. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8464] Purpose:Quincey Koziol2004-05-021-23/+30
| | | | | | | | | | | | Code optimization Description: Eliminate redundant B-tree lookups for chunk information. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8446] Purpose:Quincey Koziol2004-05-011-18/+10
| | | | | | | | | | | | | Code optimization Description: Avoid dividing the chunk coordinates at the top levels of the chunk I/O routines, only to multiply them at the bottom of the routines. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8439] Purpose:Quincey Koziol2004-04-301-59/+60
| | | | | | | | | | | | | Code cleanup Description: Refactor code to eliminate duplication of setup & calls to H5B_find to locate information about a chunk on disk. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8434] Purpose:Quincey Koziol2004-04-291-17/+89
| | | | | | | | | | | | | Code optimization. Description: Use free-list pool of blocks for allocating chunk buffers, when there are no filters in the pipeline. The avoids calling malloc/free so much. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8393] Purpose:Quincey Koziol2004-04-191-1/+3
| | | | | | | | | | | | Code optimization Description: Avoid clearing the error stack unless necessary. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8366] Purpose:Quincey Koziol2004-04-171-4/+3
| | | | | | | | | | | | Code optimization Description: Eliminate memset() calls to clear structures that we completely initialize Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8303] Purpose:Quincey Koziol2004-04-061-37/+21
| | | | | | | | | | | | Code optimization Description: Compute the size of a chunk once, when the layout information is set, instead of each time I/O is performed on the chunk. Platforms tested: h5committest Solaris 2.7 (arabica)
* [svn-r8287] Purpose:Quincey Koziol2004-03-301-1/+1
| | | | | | | | | | | | | | Bug fix/code cleanup Description: Copy Robb's feature in SSlib that checks that the name of the function used in the FUNC_ENTER macro is actually the name of function. Fixed a bunch of typos & copy-n-pasto's for functions with incorrect names. Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8158] Purpose:Quincey Koziol2004-02-061-93/+63
| | | | | | | | | | | | | | | | | Code cleanup/optimization Description: Query property list values once, at the beginning of the I/O routines, instead of querying the property list values multiple (lots!) of times in lower level routines. Solution: Create "property list caches" for internal library queries of the property list values. Platforms tested: IBM p690 (copper) w/parallel & fphdf5 h5committest
* [svn-r8126] Purpose:Quincey Koziol2004-01-311-30/+4
| | | | | | | | | | | | | | | | | Bug fix/optimization Description: Address slowdown in MPI-I/O file metadata operations that was introduced mid-stream. We now _require_ a POSIX compliant parallel file system for the MPI-I/O file driver (as well as for the MPI-POSIX file driver). Also optimized file open operation when the file is being created by reducing the number of collective & syncronizing calls. Additionally, refactor the MPI routines into a common place, eliminating duplicated code. Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel h5committest
* [svn-r8038] Purpose:Quincey Koziol2004-01-081-5/+5
| | | | | | | | | | | | | | | | | | | | Bug fix Description: When two property lists are compared, the H5Pequal routine was just comparing the raw information for the property values. This causes problems when the raw information contains pointers to other information. Solution: Allow a 'compare' callback to be registered for properties, so that a user application get perform the comparison itself, allowing for "deep" compares of the property value. This was exported to the H5Pregister & H5Pinsert routines in the development branch, but not the release branch. Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r7917] Purpose:Quincey Koziol2003-12-061-11/+11
| | | | | | | | | | | | | | | | | | | Code cleanup Description: Clean up compiler warnings, especially the 'FUNC' variable not used which comes out in production mode. Solution: Had to add a new FUNC_ENTER_NOAPI_NOINIT_NOFUNC macro for those non-API functions which don't need the 'FUNC' variable defined. (This will be _so_ much easier when C99 is standard on all our supposed platforms, since it has a __FUNC__ macro... ) Platforms tested: FreeBSD 4.9 (sleipnir) too minor for h5committest (although there were lots of files changed, the change was minor in each one)
* [svn-r7763] Purpose:Quincey Koziol2003-10-281-1/+2
| | | | | | | | | | | | | | | | | Bug fix Description: Code was using an internal DXPL with collective I/O turned on during independent I/O operations to fill dataset on disk. Solution: Switched to internal DXPL with independent I/O Platforms tested: FreeBSD 4.9 (sleipnir) FreeBSD 4.9 (sleipnir) w/parallel Linux 2.4 (verbena) w/fortran & C++ Solaris 2.7 (arabica) w/64-bit extensions enabled
* [svn-r7426] Purpose:Quincey Koziol2003-08-281-1/+1
| | | | | | | | | | | | | | | | | Bug fix Description: When datasets are deleted from a file, they are removed from the sieve buffer, but instead of invalidating only the part of the sieve buffer affected, the sieve buffer code would throw away the entire sieve buffer, potentially including other raw data in the buffer that hadn't been written to disk yet. Solution: Improve the sieve buffer clearing code to handle partial invalidations. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7362] Purpose:Quincey Koziol2003-08-141-1/+1
| | | | | | | | | | | | | Bug fix Description: Allow a user block to be "inserted" in front of a file (probably by writing a validly-sized userblock to a new file and then appending another HDF5 file to the new file). Platforms tested: FreeBSD 4.8 (sleipnir) h5committested
* [svn-r7297] Purpose:Quincey Koziol2003-08-081-2/+2
| | | | | | | | | | | | | | | | Code cleanup Description: Changed lines like: H5E_clear(H5E_get_my_stack()); to: H5E_clear(NULL); which performs the same operation. Platforms tested: h5committested
* [svn-r7265] *** empty log message ***Raymond Lu2003-07-261-2/+3
|
* [svn-r7210] Purpose:Quincey Koziol2003-07-111-11/+5
| | | | | | | | | | | | | Refactoring code Description: Refactored "IS_H5FD_MPIO || IS_H5FD_MPIPOSIX || IS_H5FD_FPHDF5" combination of macros in many places into single IS_H5FD_MPI macro, which has the same definition, but should be easier to maintain. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7192] Purpose:Quincey Koziol2003-07-091-8/+0
| | | | | | | | | | | Code cleanup Description: Clean up various minor warnings in the library. Platforms tested: FreeBSD 4.8 (sleipnir) too small to need h5committest
* [svn-r7189] Purpose:Quincey Koziol2003-07-091-0/+2
| | | | | | | | | | | Code cleanup Description: Break some of the "debugging" routines into their own module, so they aren't pulled into every executable, which certainly isn't going to use them. Platforms tested: h5committested
* [svn-r7122] Purpose:Quincey Koziol2003-06-301-3/+1
| | | | | | | | | | | | | Code cleanup/Feature removal Description: Remove "round robin" writing of metadata in MPI VFDs (and a couple of other places). This never really worked the way I hoped it would and it causes problems on certain machines. Platforms tested: FreeBSD 4.8 (sleipnir) w/parallel Too small for triple check.
* [svn-r7116] Purpose:Quincey Koziol2003-06-271-1/+4
| | | | | | | | | | | | Update code Description: Move "PABLO_MASK" definition above header file inclusion to avoid problems with inline functions in header files. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7080] Purpose:Quincey Koziol2003-06-231-7/+7
| | | | | | | | | | | | | | | | | Bug fix (backward compatibility) Description: Changes we've made during development of the 1.5.x branch had broken the feature of allowing user's callbacks to H5Giterate to return a value through the library back to the application which called H5Giterate. Solution: Correctly pass along iterator callback return value and adjust internal library code to conform to this design. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7029] Purpose:Quincey Koziol2003-06-121-22/+54
| | | | | | | | | | | | | New feature/Bug fix Description: Add new fill time value - H5D_FILL_TIME_IFSET which writes the fill value to a dataset if the user has defined one, otherwise not writing the fill value to the dataset. Platforms tested: FreeBSD 4.8 (sleipnir) serial & parallel h5committest
* [svn-r7008] Purpose:Quincey Koziol2003-06-091-1/+1
| | | | | | | | | | | | | Bug fix Description: Correct file->mpi->size to just mpi_size. Platforms tested: FreeBSD 4.8 (sleipnir) Misc. update: Reported by: Bill
* [svn-r7007] Purpose:Quincey Koziol2003-06-091-1/+1
| | | | | | | | | | | | | | Bug fix. Description: Changed "x=(x++)%y" to "x=(x+1)%y", since the former was not guaranteed to compile to the latter. Platforms tested: Eyeballed. Misc. update: Pointed out by: Forsythe, Christi <caforsy@sandia.gov>
* [svn-r6942] Purpose:Quincey Koziol2003-05-311-0/+24
| | | | | | | | | | | | | | | | | Performance improment Description: Speed up chunked dataset I/O. This breaks down into several areas: - Compute chunk selections in the file by using hyperslab operations instead of iterating over each element in the selection. - If the file and memory selections are the same shape, use the file chunk selections to compute the memory chunk selections. This required several additional dataspace, dataspace selection and hyperslab routines. Platforms tested: h5committestted (although Fortran tests failed for some reason)
* [svn-r6878] Purpose:Quincey Koziol2003-05-151-1/+2
| | | | | | | | | | | Code cleanup Description: Limit the scope on more function prototypes/macros/typedefs. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest not necessary.
* [svn-r6843] Purpose:Quincey Koziol2003-05-091-1/+1
| | | | | | | | | | | | Code cleanup Description: Clean up warnings exposed by compiling on O2K. Also, revert some of Bill and my changes to the H5S_mpi_opt_types_g, etc. and settle them back into their original location. Platforms tested: h5committested.
* [svn-r6837] Purpose:Quincey Koziol2003-05-081-2/+2
| | | | | | | | | | | | | | | Code cleanup. Description: Move many package or internal function prototypes and macro definitions into tighter scope according to their current use. Added more comments where appropriate. Eliminate ancient, unused functions. Added a couple "accessor" functions to get parts of data structures which were moved out of scope. Platforms tested: h5committested
* [svn-r6825] Purpose:Quincey Koziol2003-05-071-280/+151
| | | | | | | | | | | | | | | | | | | | | | | | | New feature/enhancement Description: Chunked datasets are handled poorly in several circumstances involving certain selections and chunks that are too large for the chunk cache and/or chunks with filters, causing the chunk to be read from disk multiple times. Solution: Rearrange raw data I/O infrastructure to handle chunked datasets in a much more friendly way by creating a selection in memory and on disk for each chunk in a chunked dataset and performing all of the I/O on that chunk at one time. There are still some scalability (the current code attempts to create a selection for all the chunks in the dataset, instead of just the chunks that are accessed, requiring portions of the istore.c and fillval.c tests to be commented out) and performance issues, but checking this in will allow the changes to be tested by a much wider audience while I address the remaining issues. Platforms tested: h5committested, FreeBSD 4.8 (sleipnir) serial & parallel, Linux 2.4 (eirene)
* [svn-r6653] Purpose:Quincey Koziol2003-04-141-151/+215
| | | | | | | | | | | | | | | | | New feature. Description: Added ability to free space used for storing raw data for both contiguous and chunked datasets. Platforms tested: FreeBSD 4.8 (sleipnir) w/C++ Linux 2.4 (burrwhite) w/FORTRAN Solaris 2.7 (arabica) w/FORTRAN IRIX64 6.5 (modi4) w/parallel & FORTRAN (h5committest not run due to my ongoing difficulties with C++ on burrwhite).
* [svn-r6607] Purpose:Quincey Koziol2003-04-091-18/+16
| | | | | | | | | | | | | | | | | Code cleanup Description: Chase internal API changes for H5Z_pipeline and H5S_set_extent_simple Solution: Platforms tested: FreeBSD 4.8 (sleipnir) w/szip Linux 2.4 (sleipnir) w/szip Solaris 2.7 (arabica) w/FORTRAN IRIX64 6.5 (modi4) w/szip, FORTRAN & parallel Misc. update:
* [svn-r6505] Purpose:Bill Wendling2003-03-191-9/+11
| | | | | | | | | | | | | | | | | Update Description: Have the FPHDF5 module initialized on startup. Have only the captain process perform certain functions (like flushing during an F_close call or allocating the superblock). H5Fistore needed a few checks to see if it was working with an FPHDF5 driver. Done similarly to how MPI and MPIPOSIX drivers are checked.. Platforms tested: Linux, Modi4, Sol Misc. update:
* [svn-r6497] Purpose:Quincey Koziol2003-03-191-3/+7
| | | | | | | | | | | | | | | | | | | Finish code cleanup Description: Wrap up the conversion of H5F_flush's multiple boolean flags into a single bitfield of flags by pushing the flags down into the H5AC_flush and H5F_istore_flush routines. Also, changed the flags from H5_FLUSH_<foo> to H5F_FLUSH_<foo> to be more consistent with rest of library. And reverted the changes to H5FDflush and H5FD_flush routines. Platforms tested: FreeBSD 4.7 (sleipnir) Solaris 5.8 (sol) IRIX64 6.5 (modi4) w/parallel Misc. update:
* [svn-r6452] Purpose:Quincey Koziol2003-03-031-3/+4
| | | | | | | | | | Code cleanup Description: Add B-tree node debugging routine for symbol table nodes (i.e. groups) Platforms tested: FreeBSD 4.7 (sleipnir)
* [svn-r6426] Purpose:Bill Wendling2003-02-211-17/+33
| | | | | | | | | | | | Update Description: Final support addition for FPHDF5. Wherever there was an equivalent MPIO or MPIO/POSIX call/check, I placed an FPHDF5 call/check there as well, with the appropriate #ifdefs in place. The hdf5.h is updated with the H5FDfphdf5.h driver #include. Platforms tested: Linux & Modi4
* [svn-r6411] Purpose:Quincey Koziol2003-02-171-15/+25
| | | | | | | | | | | | | | | | | | | | | | Code cleanup Description: Clean up miscellaneous warnings which have crept into the code. Fix "_POSIX_C_SOURCE not defined" warning on FreeBSD. Adjust gcc compiler flags to be more concise for production mode. Refactor the H5O code so that there is a stronger boundary between code in the H5O package and code in the library which just calls H5O routines. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) serial & parallel and gcc 2.95.4 & gcc 3.2.2 Misc. update: Update MANIFEST if you add or remove any file.
* [svn-r6399] Purpose:Bill Wendling2003-02-121-1/+1
| | | | | | | | | | Bug Fix Description: Pesky little thing: H5GOTO_ERROR was returning NULL instead of FAIL. Solution: Changed accordingly Platforms tested: Linux.
* [svn-r6398] Purpose:Quincey Koziol2003-02-121-5/+5
| | | | | | | | | | Code cleanup Description: Clean up some compiler warnings Platforms tested: FreeBSD 4.7 (sleipnir)
* [svn-r6396] Purpose:Bill Wendling2003-02-121-2/+2
| | | | | | | | | | | Bug Fix Description: Some of the error conditions in the H5GOTO_ERROR macros were NULL instead of FAIL. Solution: Changed accordingly. Platforms tested: Linux
* [svn-r6387] Purpose:Quincey Koziol2003-02-101-73/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | Bug Fix Description: Metadata cache in parallel I/O can cause hangs in applications which perform independent I/O on chunked datasets, because the metadata cache can attempt to flush out dirty metadata from only a single process, instead of collectively from all processes. Solution: Pass a dataset transfer property list down from every API function which could possibly trigger metadata I/O. Then, split the metadata cache into two sets of entries to allow dirty metadata to be set aside when a hash table collision occurs during independent I/O. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) serial & parallel Misc. update: Updated release_docs/RELEASE
* [svn-r6375] Raymond Lu2003-02-041-32/+62
| | | | | | | | | | | Purpose: New feature Description: Added Adler32 checksum as a filter in pipeline Platforms tested: arabica (fortran), eirene (, C++), modi4 (parallel, fortran) Misc. update: Update release_docs/RELEASE.
* [svn-r6296] Purpose:Quincey Koziol2003-01-171-2/+3
| | | | | | | | | | Code cleanup Description: Reduce warnings on Windows Platforms tested: FreeBSD 4.7 (sleipnir)