Commit Graph

3340 Commits

Author SHA1 Message Date
Quincey Koziol
c77e39522b [svn-r12680] Description:
Review, revise & checkin in Peter's latest round of object copy changes,
which add basic support for datasets & attributes with reference datatypes.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-25 17:22:14 -05:00
HDF Admin
d5d664a56c [svn-r12670] Snapshot version 1.8 release 0 (alpha5) 2006-09-16 15:38:42 -05:00
Quincey Koziol
b047710a95 [svn-r12669] Description:
Use a slightly less efficient method of computing the log2() on SGI IRIX64,
in order to avoid a compiler bug when optimizations are turned on.

Tested on:
    SGI IRIX64 6.5 (atlantia)
2006-09-15 15:20:39 -05:00
Quincey Koziol
24725d64aa [svn-r12668] Description:
Re-run 'bin/reconfigure' script after recent checkins

Tested on:
    none - shouldn't have any affect on compilation
2006-09-15 15:06:01 -05:00
Quincey Koziol
78467109a1 [svn-r12663] Description:
Don't protect direct block when removing object from managed heap blocks -
all the information we need is available without the extra I/O.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-12 15:18:00 -05:00
Quincey Koziol
99e3311909 [svn-r12662] Description:
Whitespace/formatting/compiler warning cleanup.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-12 10:30:32 -05:00
Quincey Koziol
d3a12e1058 [svn-r12661] Description:
Add 'loookup3' checksum routine and switch to using it for metadata
checksums - it's just as "strong" as the CRC32 and about 40% faster in general
(with some compiler optimizations, it's nearly as fast as the fletcher-32
algorithm).

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-12 10:25:35 -05:00
Quincey Koziol
6442a5dd9c [svn-r12657] Description:
Clean up whitespace/formatting.

Tested on:
    Mac OS/PPC 10.4 (amazon)
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-11 12:39:44 -05:00
Quincey Koziol
5e7ab927c6 [svn-r12656] Description:
Add "use the latest version of the file format" flag to the file access
property list and internal file data structures.

    Fix bug where metadata block size was retrieved instead of the small
data block size.

    Categorize property list routine prototypes in the public header file.

Tested on:
    Mac OS/PPC 10.4 (amazon)
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-11 12:30:24 -05:00
Quincey Koziol
e5cad0ef24 [svn-r12655] Description:
Add "op" routine to perform operation on heap object "in situ", to allow
for faster operations on dense links during B-tree traversal & lookup.
Refactor the "read" routine to use the internal version of the "op" routine,
to keep the code duplication as low as possible.

Tested on:
    Mac OS X.4/PPC (amazon)
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-11 12:25:26 -05:00
Quincey Koziol
9e158b7816 [svn-r12651] Description:
Clean up compiler warnings.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-05 19:38:48 -05:00
Elena Pourmal
d553c60eb0 [svn-r12650] Description:
Purify found some memory leaks in the code related to the HDF5 external links.
  James provided the fix and asked me to check it in.

Tested:

  heping, mir, shanti, and juniper
2006-09-05 18:36:01 -05:00
Quincey Koziol
46467e91b0 [svn-r12649] Description:
Add a CRC algorithm to the library, initially for "small" (<256 byte)
metadata blocks.

    Update checksum tests to verify it's working correctly.

Tested:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
    (Will be testing on more platforms after checkin)
2006-09-05 18:06:54 -05:00
Elena Pourmal
5afc64f31b [svn-r12648] Description:
This is VMS problem only.

  H5Dremove_all function was modified to use HDremove. Since HDremove
  is defined as HDremove_all in H5private.h, function became recursive causing
  all kinds of resource problems.

Solution:
  Use "remove" instead.

Platforms tested:
  VMS server
2006-09-05 17:07:26 -05:00
Quincey Koziol
27473d70b0 [svn-r12647] Description:
Eliminate redundant "B-tree type" byte from internal & leaf nodes.  May
possibly improve B-tree density in rare circumstances...

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-05 16:38:55 -05:00
Quincey Koziol
5fb857d275 [svn-r12646] Description:
Remove some references to "twig" and "branch" internal B-tree nodes, which
were eliminated in the previous checkin.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-05 16:34:17 -05:00
Quincey Koziol
94a96a02d6 [svn-r12645] Description:
Enable the checksums on the free space tracker's metadata.

    Clean up a few compiler warnings from 64-bit machines.

Tested:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-05 16:32:59 -05:00
Quincey Koziol
23b3a6a91b [svn-r12644] Description:
Improve density of the B-tree further.  For greater depths of B-trees,
the gains are over 100%...

    Also, don't split internal nodes with 3->4 splits, use a 1->2 split
instead, so that the density of the nodes around a split is maximized.

Tested:
    Mac OS X/PPC 10.4 (amazon)
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-09-05 15:53:16 -05:00
Frank Baker
749a0b9c17 [svn-r12640]
Description:
    Add per-directory abbreviated copyright notices 
    (abbreviated COPYING files pointing to full notices).
Tested:
    MANIFEST verified; not otherwise tested.
2006-09-04 13:30:13 -05:00
Quincey Koziol
d1e7ac416e [svn-r12638] Description:
Split edge nodes in the tree with a 1->2 node split, instead of a 2->3 node
split, which creates a more dense tree when a pattern of record insertions
occurs (because it leaves behind full nodes instead of 2/3 full nodes).

Tested:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Linux/32 2.4 (heping)
    Solaris/64 2.9 (shanti)
2006-09-04 11:37:41 -05:00
Quincey Koziol
f49a8d1afc [svn-r12631] Description:
Refactor the file storage of "twig" nodes in the B-tree to allow them to
store more records, increasing the average density of the B-tree 30-40%.

    Increase # of records in "insert lots" regression test to still create
B-tree of depth 4

    Update h5debug to interpret difference of 'branch' and 'twig' internal
nodes in B-tree correctly.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-26 02:26:07 -05:00
Quincey Koziol
41a1614db8 [svn-r12629] Description:
Rearrange code to avoid compiler bugs on tg-login3 machine with
gcc 3.2.2

Tested on:
        tg-login3
2006-08-25 16:09:28 -05:00
James Laird
a03c1f742d [svn-r12625] Make sure that a return value in H5Fget_intent is initialized correctly. 2006-08-24 10:05:24 -05:00
James Laird
9edac8a668 [svn-r12623] Added H5Fget_intent() function to get the "intent" of a file (read/write or
read-only).
Added this to external links, so that external files are opened with the
same intent as the source file.
Added tests.
2006-08-23 19:52:21 -05:00
Quincey Koziol
9c30e7bba1 [svn-r12619] Description:
Fix off-by-one error in computing the size of metadata prefixes for v2
B-tree internal & leaf nodes.

    General code cleanup and reformating.

Tested On:
    Mac OS X.4/PPC (amazon)
    Too minor to require h5committest
2006-08-23 10:26:25 -05:00
Quincey Koziol
618fd1f98d [svn-r12615] Description:
Add checksum to v2 B-tree metadata.

Tested On:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-08-22 15:03:21 -05:00
Quincey Koziol
06ae330cd8 [svn-r12614] Description:
Various minor reformatting & code cleanups.

Tested On:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-08-22 15:00:43 -05:00
Quincey Koziol
952c60946c [svn-r12613] Description:
Reorder metadata cache callbacks to be more sensible.

Tested on:
    None - just eyeballed, very simple change
2006-08-22 12:52:14 -05:00
Quincey Koziol
5c5f9e8e28 [svn-r12612] Description:
Provide more abstract internal routine for computing checksums on metadata
in a file.  This will allow a unified policy on which algorithm to choose and
under what criteria (length probably) to be more easily maintained.

Tested On:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-08-22 12:50:25 -05:00
Quincey Koziol
c2c6e2d0d5 [svn-r12611] Description:
Remove unused flag byte from fractal heap metadata on disk.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-08-22 12:20:49 -05:00
Quincey Koziol
dfd71ce126 [svn-r12610] Description:
Add support for checksumming fractal heaps.  This is always enabled for
the heap header and indirect blocks (as they are "pure" metadata) and is
optional for direct blocks, since they may be used for "raw" data.

    Also, rearrange direct block routines in H5HFcache.c to be in a more
sensible location in the file.  (probably should have been a separate checkin,
since the diffs are mostly useless for this checkin... *sigh*)

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
2006-08-22 12:13:17 -05:00
James Laird
9d4229713e [svn-r12608] Checked in External Link C examples.
Since these examples need to follow filesystem paths, the Makefiles need
to create directories in the examples directory; added this to the
Makefile.am.

Tested on Windows, mir, juniper
2006-08-22 11:22:43 -05:00
Quincey Koziol
c17ea44617 [svn-r12607] Description:
Tweak the library's new faster fletcher32 algorithm to always produce the
same checksum as the previous fletcher32 code in the fletcher32 I/O pipeline
filter and switch the filter to use the library's version of the algorithm.

Tested on:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
    Too minor to require h5committest
2006-08-22 08:51:30 -05:00
Quincey Koziol
7a5586ca8e [svn-r12606] Description:
Switch to somewhat less high performance checksum implementation that
doesn't run into problems for mis-aligned buffers in memory.

Tested On:
    FreeBSD/32 4.11(sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-21 19:37:38 -05:00
Quincey Koziol
5fe34046c0 [svn-r12605] Description:
Break out a bunch of the misc. routines that were in src/H5.c into more
specific modules.

    Add optimized fletcher32 checksum routine, for checksumming metadata as
well as raw data.

Tested On:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago2)
    Will test further after checkin...
2006-08-21 18:27:11 -05:00
Quincey Koziol
6bbe128367 [svn-r12604] Description:
Change call from H5O_loc_free() to H5G_name_free() when certain dataset
open failures are generated.

Tested on:
    Linux/32 2.6 (chicago)
    Too minor to require h5committest
2006-08-21 10:29:32 -05:00
Quincey Koziol
d327b6eae6 [svn-r12603] Description:
Add a bunch more regression tests:
        - Verify opening a fractal heap more than once works correctly
        - Check that 0 & 1-sized object insertions are handled correctly
        - Check that bad heap IDs are detected when attempting to read an
            object
        - Check that doubling tables with different parameter values are
            working correctly

    Add some more checks to the code to detect 0-sized object insertions and
bad heap IDs for reading.

Tested On:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-21 09:56:20 -05:00
Quincey Koziol
143cfe24b4 [svn-r12602] Description:
Correct bug in doubling table algorithm which was generating incorrect
row & column for offset larger than could be represented in 32 bits.

    Also, beef up the error checking in direct block code a bit

Tested On:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-21 09:51:16 -05:00
Quincey Koziol
fc409b2cd0 [svn-r12601] Description:
Fix bug in deserializing sections from disk which would recompute the
sections' serialized size while the sections were being deserialized,
thoroughly baffling the algorithm.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-21 09:48:21 -05:00
Quincey Koziol
16897c2d2a [svn-r12600] Description:
Clean up code a bit by reformatting and using portable macros for direct
C library calls.

Tested On:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-21 09:44:30 -05:00
Quincey Koziol
5a7ef381b2 [svn-r12598] Description:
- Migrate "direct block location" routine from H5HFman.c to H5HFdblock.c,
        which is a more appropriate location
    - Optimize performance of heap code by taking advantage of pinned
        indirect blocks and use them without putting a metadata cache
        protect/unprotect pair around them.
    - Other minor compiler warning cleanups and optimizations...

Tested On:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-18 21:42:18 -05:00
Quincey Koziol
c83c6dd945 [svn-r12597] Description:
Take advantage of the new feature in the metadata cache to insert pinned
entries into the metadata cache directly, instead of insterting them,
protecting them, pinning them and unprotecting them.

Tested On:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-18 21:38:03 -05:00
James Laird
75d22ed839 [svn-r12596] Refactored how external files are opened and closed.
Object header locations (H5O_loc_t's) can now "hold open" a file and
decrement its open object count when they close.  This means that
locations (H5O_loc_t's and H5G_loc_t's) should always be freed.

Added more thorough tests to ensure that external files are closed.
2006-08-18 15:48:54 -05:00
John Mainzer
e8c1fdd554 [svn-r12595] Modified H5C_insert_entry() to accept the H5C__PIN_ENTRY_FLAG entry
flag, and pin an entry as it is inserted.

The objective is to avoid some function call overhead in fheap.

Also added matching test code in test/cache.c & test/cache_common.c
(also testpar/t_cache.c checked in separately by accident)

h5commit tested
2006-08-17 17:04:47 -05:00
Quincey Koziol
4eb07936c7 [svn-r12593] Description:
Clean up some of the parallel chunk I/O compiler warnings and other minor
code rearrangement.

Tested on:
    FreeBSD 4.11 (sleipnir) w/paralllel
    h5committest
2006-08-17 14:26:42 -05:00
Quincey Koziol
49d1901fdd [svn-r12592] Description:
Several changes, all mooshed together:
        - Add support for "tiny" objects - which can be stored in the heap
            ID itself, instead of in the heap data blocks.
        - Flesh out support for compressed direct blocks, but comment it
            out until John's got some metadata cache changes in place to
            support it.
        - Add support for applying I/O pipeline filters to 'huge' objects
        - Refactor 'huge' object code to store information for 'huge' objects
            directly in the heap ID, when there are I/O pipeline filters
            applied to the heap (and the heap ID is large enough to hold the
            information)
        - Update h5debug tool to correctly handle 'huge' & 'tiny' objects.
        - Misc. other code cleanups, etc.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:59:14 -05:00
Quincey Koziol
0de2335088 [svn-r12591] Description:
Add an error code for a I/O filter pipeline operation failing

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:54:05 -05:00
Quincey Koziol
34f456170d [svn-r12590] Description:
Set the parent indirect block information correctly when creating new
row sections.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:51:17 -05:00
Quincey Koziol
832305699d [svn-r12589] Description:
Revert passing the v2 B-tree class to callbacks, it turns out to be
unnecessary.  Also revert have a "class private" pointer for each v2 B-tree
class.

    Add in support for the different flavors of fractal heap 'huge' objects
also.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:49:06 -05:00
Quincey Koziol
7fd5028f7c [svn-r12588] Description:
Set the address of the free space section info's parent header correctly
when bringing the section info into the metadata cache.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-17 10:43:10 -05:00