Commit Graph

140 Commits

Author SHA1 Message Date
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
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
89f36d62b7 [svn-r12575] Description:
Allow the heap ID length to be chosen at heap creation time, to allow
for making heap IDs long enough to directly embed the file offset & length
of 'huge' objects in the heap ID (which allows them to be retrieved directly
from disk, instead of requiring them to be looked up in the B-tree that tracks
'huge' objects)

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 9 (shanti)
2006-08-13 21:50:11 -05:00
Quincey Koziol
c4a5b8e16c [svn-r12573] Description:
Clean up a couple of compiler warnings in the 'huge' object code in the
library.

    Add a bunch of 'huge' object regression tests

Tested on:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Solaris/64 2.9 (shanti)
2006-08-12 23:18:45 -05:00
Quincey Koziol
67eba917e2 [svn-r12565] Description:
Move metadata cache address rename for fractal heap indirect block
immediately after reallocing the storage on disk - to prevent another
routine in the library from confusing the cache by allocating more storage
and attempting to insert it in metadata cache at the old block's location.

    Gotta like those monte carlo/random insert & delete tests, which exposed
this... :-)

Tested:
    Solaris 2.9 (shanti)
    Not failing on other machines
2006-08-11 13:47:44 -05:00
Quincey Koziol
b648c14f13 [svn-r12562] Description:
Initial revision to add support for "huge" objects in the heap (which are
actually stored directly in the file, but are tracked with v2 B-tree that is
accessed through heap header).

Testing:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Linux/32 2.4 (heping)
    Mac OS X.4 (amazon)
2006-08-09 22:45:06 -05:00
Quincey Koziol
d17d42acd0 [svn-r12552] Description:
More tweaks on fractal heap statistics, to better separate information
about managed objects from information about "huge" objects.

    Also, clean up some compiler warnings, etc. on 64-bit platforms & Windows.

Platforms tested:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago)
2006-08-07 16:24:29 -05:00
Quincey Koziol
4f289e5b92 [svn-r12551] Description:
Refactor fields in heap header to clean out information from dropped
features and also group related fields together more nicely.

    Add fields to heap header for storing information about "huge" objects.

Platforms tested:
    Linux/32 2.6 (chicago)
    Linux/64 2.6 (chicago)
2006-08-07 14:51:59 -05:00
Quincey Koziol
80b1c44327 [svn-r12550] Description:
Refactor fractal heap IDs to include "flag byte" as part of the ID.  This
byte will be used for the heap ID format version as well as flags to indicate
whether the heap object is a "tiny"/normal/"huge" object (with storage
mechanisms optimized for each type of object).

Platforms tested:
    Linux/32 2.4 (chicago)
    Too minor to require h5committest
2006-08-07 13:18:17 -05:00
Quincey Koziol
9a03ce6406 [svn-r12549] Description:
Add support for entire heap deletion.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux/32 2.4 (chicago)
    Linux/64 2.4 (mir)
    Mac OS X (amazon)
2006-08-07 11:49:18 -05:00
James Laird
beb04ae817 [svn-r12519] Fixed "make check-vfd"
"make check-vfd" will now run all tests in the test directory with different
file drivers (at least, all of those tests that use the testing framework's
FAPL).  Tests that fail will be skipped.

This is not a perfect fix, but is better than nothing.

Along with this change, check-vfd should be added to the Daily Tests.
2006-07-31 14:46:16 -05:00
Quincey Koziol
87449d081d [svn-r12517] Description:
Fix the last scattered bunch of problems with the object deletion code,
which appears to be completely working now (for objects that are stored
within heap blocks - standalone objects aren't implemented yet).

    Also, re-work the regression test to speed up some of the existing tests
and add in 100-200 more combinations of tests - overall, its probably even
slower than it was... :-/

Tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
    Mac OS X (amazon)
2006-07-31 04:54:09 -05:00
Quincey Koziol
d3548fa09c [svn-r12495] Description:
Checkpoint further work on object deletion code for fractal heaps.  I
believe everything is finally working for this sub-task.  More regression tests
soon, but I don't foresee any problems.

Machines:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
2006-07-24 20:40:00 -05:00
Quincey Koziol
58ed885d13 [svn-r12491] Description:
Refactored object deletion code for fractal heap to fix scaling problems.
Passing all previous tests again now.

Tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
    Mac OS X (amazon)
2006-07-21 20:55:14 -05:00
Quincey Koziol
e9d6c992d6 [svn-r12474]
Clean up some compiler warnings.

Tested on:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2006-07-15 14:49:04 -05:00
Quincey Koziol
7c8a630054 [svn-r12449] Purpose:
Code checkpoint

Description:
    Revise fractal heap code to support deletions in up to 2nd level deep
indirect blocks.  Needs some revisions to support deeper indirect blocks...

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
    h5committest
2006-07-01 08:58:14 -05:00
Albert Cheng
95a106f9fd [svn-r12443] Purpose:
Added/adjusted Test Express mode.

Description:
btree2:
    Added TestExpress mode to skip some long tests (the 5th recursive and
    the two random tests.)
fheap:
    Changed the express mode messages to be more informative.
    Un-excluded some tests from express mode.

Platforms tested:
Red Storm.
2006-06-28 13:06:05 -05:00
Quincey Koziol
7be3afb278 [svn-r12440] Purpose:
Code cleanup

Description:
    Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.

Platforms tested:
    None necessary, whitespace only change
2006-06-27 09:45:06 -05:00
James Laird
52ee6d3f1f [svn-r12432] Purpose:
Bug fix

Description:
Since the new default Express level is 1, some fheap tests were being skipped.

Solution:
At least temporarily, fheap now skips these tests if it is run at express level 2
or greater.

Platforms tested:
mir
2006-06-21 18:42:19 -05:00
Quincey Koziol
9db9e82cd1 [svn-r12424] Purpose:
Code checkpoint

Description:
    Add in more new features for the fractal heap code, mostly bringing in
more ability for deleting objects (which isn't completely working yet).

    Also, checkpoint free space manager code, which is essentially complete
(although it needs some more work after the metadata cache has some additional
features)

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
    h5committest
2006-06-19 05:06:10 -05:00
Albert Cheng
3fcb63545d [svn-r12386] Purpose:
Added Exress Test mode.

Description:
The test takes a long time to run.  It tempted developers to skip the
h5committest.


Solution:
Added Express Test mode to allow tester an option to run it in express
mode (shorter time.)  There are already encoded QAK macro which skips
many tests.  Follow that pattern to skip tests when HDF5TestExpress is
set.

Platforms tested:
Tested in heping, both serial and parallel.
2006-05-30 22:51:34 -05:00
Quincey Koziol
5d2bddcd06 [svn-r12362] Purpose:
Code checkpoint

Description:
    Update fractal heap code to allow objects to be deleted

    Fix bugs in fractal heap object insertion

    Improve free space manager code to allow sections to be merged and
        shrink the container

    Another try at making the Windows compilers happy...

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Mac OS X.4/PPC (amazon)
    Linux 2.4 (chicago & heping)
    Solaris 2.9 (shanti)
    AIX 5.? (copper) w/parallel
2006-05-22 11:43:45 -05:00
Quincey Koziol
7b6db1046b [svn-r12349] Purpose:
Code checkpoint

Description:
    Checkpoint fractal heap improvements, as well as move the free space
manager code that it's using into a separate package.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4/64 (mir) w/C++ & FORTRAN
    Linux 2.4/32 (heping)
    Solaris 2.9 (shanti)
    AIX 5.? (copper) w/FORTRAN & parallel
2006-05-14 23:35:53 -05:00
Quincey Koziol
4965bf1839 [svn-r12317] Purpose:
Code checkpoint

Description:
    More progress on fractal heap, can now re-open an existing heap, although
the free space algorithm still needs work.

    Also, use the new "pinned entry" metadata cache code.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (heping)
    Solaris 9 (shanti)
    Linux 2.4/64 (mir)
2006-04-30 08:32:41 -05:00
Quincey Koziol
0aa70b3748 [svn-r12259] Purpose:
Code checkpoint

Description:
    Add more regression tests for odd insertion patterns

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (heping)
    Linux 2.4/64 (mir)
    Solaris 2.9 (shanti)
2006-04-15 17:14:47 -05:00
Quincey Koziol
c83c1eb42d [svn-r12258] Purpose:
Code checkpoint

Description:
    Add in more fractal heap support for odd allocation patterns (entries that
are too large for various block sizes, etc.)

    Broke out fractal heap code into more source code modules.

    Refactored fractal heap test to make it more understandable and
maintainable for the long term.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (heping)
    Linux 2.4/64 (mir)
    Solaris 2.9 (shanti)
2006-04-15 16:11:42 -05:00
Quincey Koziol
ea7a5346d7 [svn-r12190] Purpose:
Code checkpoint

Description:
    Update fractal heap code to allow skipping direct blocks (that are too
    small to hold object) when the root indirect block is created.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2006-04-01 16:09:48 -05:00
Quincey Koziol
244fdb6d89 [svn-r12184] Purpose:
Code checkpoint

Description:
    Checkpoint recent additions to fractal heap code, which allow for better
support of objects that don't fit into current direct block, requiring
skipped direct blocks to be tracked in free section list.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago & heping)
    Linux 2.4 (mir) w/64-bit & FORTRAN & C++
    Mac OSX (amazon)
2006-03-31 10:43:14 -05:00
Quincey Koziol
935d75c50d [svn-r12162] Purpose:
Code checkpoint

Description:
    Check in fractal heap code to add basic support for skipping direct blocks
when an object is too large to fit in one.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
2006-03-28 09:03:46 -05:00
Quincey Koziol
87050be33e [svn-r12161] Purpose:
Code checkpoint

Description:
    Checkpoint fractal heap code at a stable point in development.  It appears
that adding objects to heaps and reading them back out is now working
properly (as long as there are no gaps in the heap and no standalone objects
are created).

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
    Linux 2.4 (mir) w/64-bit & FORTRAN & C++
    Solaris 9 (shanti) w/64-bit
2006-03-27 16:57:50 -05:00
Quincey Koziol
2db47ff504 [svn-r12125] Purpose:
Code checkpoint

Description:
    Update fractal heap code to insert & read heaps up to 64MB in size
(with my current configuration paramaters) and add initial support for
iteratively walking down nested indirect blocks.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
    Solaris 9 (shanti)
    Linux 2.4 (mir) w/64-bit
2006-03-20 21:59:06 -05:00
Quincey Koziol
a53790e16a [svn-r12122] Purpose:
Code update

Description:
    Add basics of routine for reading information back out of a fractal heap.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2006-03-18 16:33:48 -05:00
Quincey Koziol
2315bc4dda [svn-r12118] Purpose:
Checkpoint code

Description:
    Rework code to support increasing size of root indirect block, in order
to add [at least] a second row of direct blocks.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 9 (shanti) w/64-bit
    Linux 2.4 (mir)
2006-03-17 22:16:40 -05:00
Quincey Koziol
49ab3665aa [svn-r12093] Purpose:
Code checkpoint

Description:
    Checkpoint fractal heap changes - mostly internal changes to better
handle more direct blocks from root indirect block.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4 (chicago)
    Mac OS X (amazon)
2006-03-15 15:16:04 -05:00
Quincey Koziol
ee3fdc2dbc [svn-r12084] Purpose:
Code checkpoint

Description:
    The fractal heap code is reasonably stable and is passing all its
current tests, so checkpoint everything with CVS.

    Also, add "statistics" module for v2 B-trees code, which is only a
stub right now.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Mac OSX (amazon)
    Linux 2.4 (chicago)
2006-03-13 14:47:16 -05:00
Quincey Koziol
4efe32d542 [svn-r12018] Purpose:
Bug fix

Description:
    Uncomment tests

Platforms tested:
    Linux 2.4 (mir) - 64-bit
2006-03-06 22:26:50 -05:00
Quincey Koziol
0f8fa98da0 [svn-r12008] Purpose:
Bug fix (sorta)

Description:
    Disable the fractal heap tests until I can look into them more thoroughly.
(they are failing on 64-bit machines currently)

Platforms tested:
    None - trivial change.
2006-03-06 04:47:37 -05:00
Quincey Koziol
dfbf976509 [svn-r12004] Purpose:
New feature & code cleanup

Description:
    Update fractal heap to be able to insert objects into a direct block
hanging off the header.

    Extract "octal dump" code into separate routine so that both the local
heaps & fractal heaps can use it.

    Other code cleanups & support to get this far.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Linux 2.4
2006-03-04 17:56:44 -05:00
Quincey Koziol
658bf4a8fb [svn-r11968] Purpose:
Incrementtal checkin

Description:
    Revise & update v2 B-tree code to separate the internal package-specific
routines from the library-callable "private" routines.

    Similar updates for the fractal heap code.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Mac OSX (amazon)
2006-02-27 09:52:21 -05:00
Quincey Koziol
3713db1174 [svn-r11967] Purpose:
New feature

Description:
    Check in initial "fractal heap" code, for supporting the group redesign.

    Also, remove some remnants of the segmented heap/block tracker/B+tree code
which I didn't find during the last pass.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Mac OSX (amazon)
    Linux 2.4
2006-02-26 22:46:46 -05:00