Commit Graph

959 Commits

Author SHA1 Message Date
John Mainzer
5c415042a3 [svn-r9687] Purpose:
Modify the cache code (H5C) to support automatic cache resizing to
adapt to the work load at run time.


Description:

   Different applications require different sized caches to maintain
an acceptable hit rate.  This set of changes attempts to provide the
ability to adjust to circumstances automatically.


Solution:

   Added highly configurable code to allow the user to either set a
fixed cache size, or allow the cache to grow and shrink according to
conditions.

   If enabled, cache size increases are triggered when the hit rate
drops below a user specified threshold in a user specified interval.

   Cache size reductions (if enabled) are triggered when either the
hit rate exceeds some user specified threshold over a user specified
interval, when the cache contains "enough" entries that haven't been
accessed for a user specified interval, or some mix of the above.

   See the header comments on the H5C_auto_size_ctl_t structure in
H5Cprivate.h for further details.

   At present, the cache resize configuration options are not
accessible via the user API.  Must add this.


Platforms tested:

   h5committested, heping (serial), and copper (parallel)


Misc. update:
2004-12-17 20:30:34 -05:00
Quincey Koziol
aa87029f12 [svn-r9615] Purpose:
New feature

Description:
    Add callback iteration routine to skip lists.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Too minor to require h5committest
2004-12-03 22:36:08 -05:00
Albert Cheng
d8f332bcb9 [svn-r9608] Purpose:
Added comment of the fix.

Platforms tested:
only tested in heping as it is only a comment added.
2004-11-30 20:13:29 -05:00
Quincey Koziol
17daa748fa [svn-r9603] Purpose:
Bug fix

Description:
    Correct integer overflow situation for computing the size of a dataset.

Solution:
    Rachet one of the dimensions down far enough that the total size of the
dataset's raw data doesn't overflow a 64-bit int.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    IRIX 6.? (tesla) w/-n32
    Too minor to require h5committest
2004-11-30 15:53:53 -05:00
Quincey Koziol
5d104d60c9 [svn-r9601] Purpose:
New feature

Description:
    Allow skip list keys to be strings (needed for property list support)

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-11-29 23:42:40 -05:00
Quincey Koziol
73df82dcdf [svn-r9598] Purpose:
New internal feature

Description:
    Add a "release" routine to the skip lists, which releases all the nodes
in the skip list, but keeps the skip list active.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Linux 2.4 (verbena)
    Too minor to require h5committest
2004-11-29 16:01:20 -05:00
Quincey Koziol
51ed85b277 [svn-r9596] Purpose:
Code optimization

Description:
    Retarget metadata cache code from using TBBT routines to using new skiplist
routines, for a reasonable speedup (when dealing with dirty metadata)

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7  (arabica)
    Too minor to require h5committest
2004-11-29 14:55:18 -05:00
Quincey Koziol
b52107a42a [svn-r9580] Purpose:
Add new internal data structure

Description:
    Add an implementation of skip lists to the library (see comment in
src/H5SL.c for references to the papers describing them) as a potential
replacement for our current threaded, balanced binary tree container.
Skip lists are much simpler to implement and should be faster to use.

    Also, added new error codes to release branch, so bump the minor version
number to indicate that the library is no longer perfectly compatible with
the 1.6.3 release.

Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel
    Solaris 2.7 (arabica)
    Too minor to require further testing (the skip lists aren't actually
    used by any library code yet)
2004-11-27 11:07:11 -05:00
Quincey Koziol
ac4e04fbc2 [svn-r9567] Purpose:
Cleanup & add test

Description:
    Clean up test makefile a bit and add metadata cache test to 1.6 branch.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-11-23 22:15:27 -05:00
Raymond Lu
7016b6e5ed [svn-r9539]
Purpose:  Correction to previous bug fix.  This checkin is mainly to let user
test his program.

Description:   For family driver bug(#213), the previous fix was imperfect.  The problem
was when user create family file, the member size information wasn't saved in file.  When
the file was re-opened, the library simply use the size of 1st member file as member size.

Solution:
              When file is re-opened, member size passed in from access property
              is checked to see if it's reasonable.  If there is only 1 member
              file, member size can't be smaller than current member size.
              If there are at least 2 member files, member size can only be equal
              to the 1st member size.

Platforms tested:  h5committest and fuss
2004-11-18 11:52:12 -05:00
Raymond Lu
22a72b911e [svn-r9531] Purpose: Bug fix(#213)
Description:  H5Pset_fapl_family sets family member size only for creating
new file.  The file doesn't keep this size information.  When the file is
re-opened, the size of first member file is used as the member size.

Solution:  Assume user knows the original member size and sets it through
H5Pset_fapl_family.  That will be the member size.  User can pass in value 0
as member size if he doesn't know the original member size.  Library will
choose the size of current first member size as the member file size.

Platforms tested: h5committest and fuss.
2004-11-16 11:38:28 -05:00
Quincey Koziol
8d422da811 [svn-r9526] Purpose:
Bug fix, sorta.

Description:
    Revert change to H5Pget_data_transform() which changed len of buffer
returned to be inconsistent with H5Iget_name(), etc.  We should discuss this
change and apply it to all the similar functions if we decide to change the
return value.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-11-12 09:16:58 -05:00
Leon Arber
091fbb49e0 [svn-r9518] Purpose:
New tests

Description:
Added tests for chunked reads/writes.

Platforms tested:
eirene + sol + copper

Misc. update:
2004-11-11 12:15:33 -05:00
Leon Arber
9268be2d0d [svn-r9501] Purpose:
Code clean-up

Description:
Rewrote code to make it simpler.

Added more data type tests

Solution:
Simplified code a lot in preparation for addition of new test cases.


Platforms tested:
heping + sol + copper
2004-11-03 12:28:26 -05:00
Robert E. McGrath
3f0abcc71f [svn-r9494] Purpose:
Fix SZIP filter to dynmically detect encoder.

Description:

Solution:
See:
http://hdf.ncsa.uiuc.edu/RFC/SZIP/Szip_dynamic_12_Oct.pdf

Changes to library tests, contingent on detecting SZIP encoder.
2004-11-02 14:12:06 -05:00
Quincey Koziol
17fec21284 [svn-r9486] Purpose:
Code cleanup

Description:
    Change loops for comparing results to use 2-D array lookups, since that's
what we've really got and the older 1-D array lookups was making the PGI C
compiler whine about array bounds issues.

Platforms tested:
    Linux 2.4 (heping) w/PGI C
    Not relevent to other platforms, no h5committest
2004-10-28 22:32:24 -05:00
Quincey Koziol
c274ffe1c9 [svn-r9466] Purpose:
Bug fix

Description:
    Clean up potential buffer overflow in strncpy()

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-10-26 21:12:02 -05:00
Leon Arber
22696535f5 [svn-r9464] Purpose:
Bug fix.

Description:
dtransform test still failed on windows because it was attempting to create a
ullong dataset.

Solution:
Removed creation of ullong dataset as well if H5_ULLONG_TO_FP_CAST_WORKS was
not defined.

Platforms tested:
windows
2004-10-26 16:48:15 -05:00
Leon Arber
1a869e39dc [svn-r9463] Purpose:
Bug fix.

Description:
unsigned long long test fails on windows because windows cannot convert from
ullong to double

Solution:
Skip unsigned long long test if H5_ULLONG_TO_FP_CAST_WORKS is not defined.

Platforms tested:
eirene and will do windows test asap.
2004-10-26 16:04:31 -05:00
Leon Arber
4c8429e3d2 [svn-r9462] Purpose:
Added tests
Code cleanup

Description:
New tests added for new version of H5Pget_data_transform and additional tests
to make sure that error conditions are handled properly by both
H5Pset_data_transform and H5Pget_data_transform.

Also cleaned up code to make it more compact.

Platforms tested:
sol + eirene + copper

Misc. update:
2004-10-26 15:47:22 -05:00
Quincey Koziol
3b63db5f7f [svn-r9459] Purpose:
Code cleanup

Description:
    Clean up minor warnings and align with release branch.


Platforms tested:
    FreeBSD 4.10 (sleipnir) w/parallel & FPH5
    Solaris 2.7 (arabica) w/production mode
    Linux 2.4 (heping) w/C++ and FORTRAN
2004-10-26 15:07:10 -05:00
Albert Cheng
06a81051f0 [svn-r9450] Purpose:
"Improvement"?

Description:
Long double is a standard C89 type.  Promoted it from
a conditional tested type to an assumed supported type.

Platforms tested:
H5committested.

Misc. update:
2004-10-22 16:11:16 -05:00
Raymond Lu
cacc8fa4c6 [svn-r9445] Purpose: Bug fix
Description:  "char" was considered as always "signed char" in data type conversion.  However, ISO C leaves
the definition of "char" to individual implementation.  i.e. for IBM AIX C compiler, it's treated as "unsigned
char".

Solution: Changed all "char" to "signed char".  Don't even do "char" anymore because its definition is up
to each vendor.

Platforms tested:  h5committest
2004-10-21 11:04:08 -05:00
Leon Arber
b7a3a55b77 [svn-r9442] Purpose:
Add code more code to test H5Pget_data_transform and H5Pset_data_transform

Description:
Added a test to verify that H5Pset_data_transform will correctly replace a
data transform with a new one and properly use the new transform on the data.

Added a test to verify that H5Pget_data_transform properly returns the
transform string.

Platforms tested:
sol + eirene + copper

Misc. update:
2004-10-20 16:09:54 -05:00
Quincey Koziol
a4c0ed0374 [svn-r9433] Purpose:
Bug fix

Description:
    Fix core dump when flushing a file with a newly created attribute which
hasn't had a value written to it still open.

Solution:
    Write the attribute fill value when appropriate.

Platforms tested:
    FreeBSd 4.10 (sleipnir)
    Linux 2.4 (verbena)
    Solaris 2.7 (arabica)
2004-10-18 22:31:11 -05:00
Leon Arber
4f846baa4a [svn-r9432] Purpose:
Skip test.

Description:
Known failure in char and schar types for dtransform test on AIX and SGI.

Solution:
Temporary skip this test until bug is fixed.

Platforms tested:
copper (minor change)
2004-10-18 17:54:55 -05:00
Leon Arber
b6fa15d1bb [svn-r9431] Purpose:
Bug fix.

Description:
If a subtest failed, the error would not propogate properly to the main
function, thereby resulting in a succesful run, even though the test failed.

Solution:
Fixed error return values.  The dtransform test will now fail for real.

Platforms tested:
sol + eirene + copper
2004-10-18 17:47:53 -05:00
Albert Cheng
1de960855f [svn-r9427] Purpose:
Bug fix.

Description:
AIX defines different sizes of the signed and unsigned int_fast8_t.
Changed the code to check each type individually and do not verify
they must be the same size.

Platforms tested:
Tested in copper only since the change is trivial.

Misc. update:
2004-10-14 16:25:59 -05:00
Leon Arber
841a072c93 [svn-r9423] Purpose:
Description:
Make the test check transforms on all types, and expanded testing for unsigned types.

Solution:

Platforms tested:
sol + eirene
2004-10-14 14:56:27 -05:00
Albert Cheng
a7073e240e [svn-r9420] Bug fix.
tconfig.c:
    Verified only the unsigned int types and did not detect inconsistencies
    on signed type such as int_fast16_t.
    Changed code to verify both signed and unsigned int types wherever
    applicable.  It also depends on signed and unsigned forms of an
    int type must be of the same sizes.

testhdf5.c:
    Shorten the configure test name to 'config'--easier to type.

Tested on LLNL Frost and Snow.  Will test in Copper after commit.
2004-10-14 14:12:44 -05:00
Albert Cheng
7d1bf17b3d [svn-r9419] Bug fix.
tconfig.c:
    Verified only the unsigned int types and did not detect inconsistencies
    on signed type such as int_fast16_t.
    Changed code to verify both signed and unsigned int types wherever
    applicable.  It also depends on signed and unsigned forms of an
    int type must be of the same sizes.

testhdf5.c:
    Shorten the configure test name to 'config'--easier to type.

Tested on LLNL Frost and Snow.  Will test in Copper after commit.
2004-10-14 14:12:44 -05:00
Quincey Koziol
e1c1f5cc15 [svn-r9395] Purpose:
Bug fix

Description:
    Correct a couple of array bounds issues exposed by the PGI compiler

Platforms tested:
    Linux 2.4 (verbena) w/PGI compilers
    Too minor too requie h5committest
2004-10-10 14:22:03 -05:00
Quincey Koziol
166580844b [svn-r9393] Purpose:
Code cleanup

Description:
    Clean up formatting and some mis-casts, etc.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Linux 2.4 (verbena)
    Solaris 2.7 (arabica)
2004-10-08 23:28:33 -05:00
Leon Arber
5d9f7ebd4c [svn-r9369] Purpose:
Added tests for most of the types that were added to the data transform code.

Further tests will also be added shortly.


Platforms tested:
sol + eirene

Misc. update:
2004-10-05 17:44:17 -05:00
Raymond Lu
d595bab80e [svn-r9366]
Purpose:  feature change

Description:  Prevent creating datatype of size 0.


Platforms tested:  fuss(simple change)
2004-10-05 13:36:03 -05:00
Raymond Lu
7ba45c05b3 [svn-r9364]
Purpose:  change feature

Description:  Back up support bitfield and time datatypes in H5Tget_native_type.Leave it to future support.  Let it return "not supported" error message for
now.


Platforms tested:  h5committest and fuss.

Misc. update:  RELEASE.txt
2004-10-05 09:31:14 -05:00
Raymond Lu
753190f8c1 [svn-r9350] *** empty log message *** 2004-10-01 13:28:18 -05:00
James Laird
5c0011a713 [svn-r9329]
Purpose:
Feature

Description:
Datatypes and groups now use H5FO "file object" code that was previously
only used by datasets.  These objects will hold a file open if the file
is closed but they have not yet been closed.  If these objects are unlinked
then relinked, they will not be destroyed.  If they are opened twice (even
by two different names), both IDs will "see" changes made to the object
using the other ID.
When an object is opened using two different names (e.g., if a dataset was
opened under one name, then mounted and opened under its new name), calling
H5Iget_name() on a given hid_t will return the name used to open that hid_t,
not the current name of the object (this is a feature, and a change from the
previous behavior of datasets).

Solution:
Used H5FO code that was already in place for datasets.  Broke H5D_t's, H5T_t's,
and H5G_t's into a "shared" struct and a private struct.  The shared structs
(H5D_shared_t, etc.) hold the object's information and are used by all IDs
that point to a given object in the file.  The private structs are pointed
to by the hid_t and contain the object's group entry information (including its
name) and a pointer to the shared struct for that object.
This changed the naming of structs throughout the library (e.g., datatype->size
is now datatype->shared->size).  I added an updated H5Tinit.c to windows.zip.

Platforms tested:
Visual Studio 7, sleipnir, arabica, verbena

Misc. update:
2004-09-28 14:04:19 -05:00
Quincey Koziol
3f2fb8bed1 [svn-r9322] Purpose:
Bug fix

Description:
    Fix situation where deleting a chunked datasets with B-tree nodes that
weren't in the metadata cache would die with a core dump.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Linux 2.4 (heping)
    Solaris 2.7 (arabica)
2004-09-27 13:06:11 -05:00
Quincey Koziol
9fc48a0097 [svn-r9312] Purpose:
Bug fix.

Description:
    Allow I/O to occur on 0 element selections.

Platforms tested:
    h5committest
2004-09-22 22:05:15 -05:00
Albert Cheng
0a69acf992 [svn-r9298] Purpose:
Bug fix.

Description:
the Data transformation code that failed when a data transform property
for simple expression is fixed.  Turned the tests back on.

Platforms tested:
Tested in copper (pp) where the failure appeared.  Also in eirene
as double check.  No h5committest as the change is trivial.
2004-09-21 20:19:54 -05:00
Albert Cheng
68f16ab5fa [svn-r9272] Purpose:
Bug fix.

Description:
THe trivial transform property list creation triggered a code
error.  Skip these two tests temporary.  Will fix it later.

Platforms tested:
Copper where it exposed the failures.

Misc. update:
2004-09-17 18:56:57 -05:00
Leon Arber
5075bb85d7 [svn-r9268] Purpose:
Added tests for polynomial transforms.

Platforms tested:
sol + eirene

Misc. update:
2004-09-16 13:12:19 -05:00
Quincey Koziol
ad9617109e [svn-r9261] Purpose:
Code cleanup

Description:
    Remove some test files generated from new tests.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    Too minor to require h5committest
2004-09-15 00:04:54 -05:00
Quincey Koziol
eb3e9ccd8a [svn-r9234] Purpose:
Code cleanup

Description:
    Tweak recent "forward compatibility" changes to the H5E* API (which allowed
for the old H5E API functions to remain unchanged) by allowing for the error
stack callback function (H5E_auto_t) to also remain unchanged from the 1.6
branch.  This required changing the H5E{get|set}_auto routines to have the
old style H5E_auto_t type (which didn't have a stack ID parameter) and the new
H5E{get|set}_auto_stack routines to have a newer "H5E_auto_stack_t" type (which
has a stack ID parameter).  This should make the H5E API changes as forwardly
compatible as possible.
    One side-affect of this change was that it was impossible to determine if
the current auto error callback was the old style (H5E_auto_t) or the new style
(H5E_auto_stack_t) of callback, so a new API function (H5Eauto_is_stack) was
adde to query this.

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    IRIX64 6.5 (modi4)
    h5committest
2004-09-08 21:37:02 -05:00
Raymond Lu
7570de4e35 [svn-r9221] Purpose: Bug fix
Description:  One place was left out for update after the Error API was modified.
Changed it from H5Eset_auto to H5Eset_auto_stack.


Platforms tested:  sleipnir(with threadsafe) - simple change.
2004-09-08 09:48:58 -05:00
Pedro Vicente Nunes
9abba8efdf [svn-r9213] Purpose:
new test for the native types test

Description:

on the Cray SV1 an INT type was wrongly converted to a SHORT type
by the get_native_integer function

Choose the type based on the precision; this is to support cases
like the Cray SV1, where the size of short is 8 but precision is 32
 (e.g an INT (size 8, prec 64) would be converted to a SHORT
    (size 8, prec 32) if the size was the deciding factor)



Solution:

Platforms tested:
linux
solaris
aix

Misc. update:
2004-09-07 11:42:56 -05:00
Raymond Lu
922e8a4a8b [svn-r9208] Purpose: Bug fix
Description:  A few items were left out when tried to restore the old Error API.
There are also a few minor bug fixes.


Platforms tested:  arabica fuss h5committest.
2004-09-04 16:06:48 -05:00
Raymond Lu
cb7f03a26f [svn-r9183] Purpose: New feature
Description:  Restore 6 old error API functions back to the library to be backward
compatible with v1.6.  They are H5Epush, H5Eprint, H5Ewalk, H5Eclear, H5Eset_auto,
H5Eget_auto.  These functions do not have error stack  as parameter.

Solution:  Internally, these functions use default error stack.

Platforms tested:  h5committest and fuss.

Misc. update: RELEASE.txt
2004-09-01 12:43:30 -05:00
Quincey Koziol
22d00ce23f [svn-r9155] Purpose:
Bug fix (sorta)

Description:
    Change reading of "missing" chunks from datasets with undefined fill
values to not overwrite the application buffer with random garbage from
memory.  Note that this is almost the same, since whatever garbage the
application had in those locations will still be there...

Platforms tested:
    FreeBSD 4.10 (sleipnir)
    IRIX64 6.5 (modi4)
    h5committested
2004-08-25 03:30:32 -05:00