Commit Graph

54 Commits

Author SHA1 Message Date
Quincey Koziol
d0a9cf9ffa [svn-r13871] Description:
Fix problems with 'check-vfd' target, that were [mostly] introduced with
the recent "unique, but sharable" ISOHM optimization.

    The problems were mostly with using the 'core' VFD, so the
H5Pset_fapl_core() API call was changed to re-open existing files (therefore
operating more list the sec2, stdio, etc. VFDs).  This allows many more of
the tests to run using the 'core' VFD, so those were enabled also.

Tested on:
    Linux/64 2.6 (chicago2) w/check-vfd
2007-06-15 14:11:59 -05:00
Albert Cheng
ed7d456e51 [svn-r13253] Updated all C and C++ style source code files with the THG copyright notice.
Tested platform:
Kagiso only since it is only a comment block change.  If it works in one
machine, it should work in all, I hope.  Still need to check the parallel
build on copper.
2007-02-07 09:56:24 -05:00
Quincey Koziol
98f3bca75e [svn-r12949] Description:
Finish implementation of H5Literate() [still needs real tests]

    Clean up datatype macro warnings a bit more.

    Unify iterator callback macros and put up in public header file, with the
iterator directions.

Tested on:
    Mac OS X/32 10.4.8 (amazon)
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    AIX/32 5.? (copper)
2006-11-20 10:23:29 -05:00
Quincey Koziol
a44ab9133a [svn-r12915] Description:
Finish adding "delete by index" feature to v2 B-trees.

Tested on:
    FreeBSD/32 4.11 (sleipnir)
    Linux/32 2.4 (heping)
    Linux/64 2.4 (mir)
    AIX/32 5.? (copper)
2006-11-15 12:38:45 -05:00
Quincey Koziol
002fe8b35d [svn-r12914] Description:
Checkpoint partially working v2 B-tree delete by index code (ifdef'ed out)
for further work.

Tested on:
    Linux/32 2.6 (chicago)
2006-11-14 15:33:50 -05:00
Quincey Koziol
e87cb91483 [svn-r12877] Description:
Clean up more compiler warnings.

Tested on:
    Linux/64 2.6 (chicago2)
2006-11-07 15:19:41 -05:00
Quincey Koziol
bc0b7c478f [svn-r12873] Decription:
Add support for reverse index lookup to v2 B-trees (needed for reverse
index lookup of links in groups)

Tested on:
    Linux/64 2.6 (chicago2)
2006-11-07 10:25:06 -05:00
Quincey Koziol
2374bb1012 [svn-r12759] Description:
Fix errors with check-vfd and recent modifications to tests.

Tested on:
    Linux/64 2.4 (mir) w/check-vfd
2006-10-13 12:16:07 -05:00
Albert Cheng
e065eee4a8 [svn-r12751] Purpose:
Bug fix (related to 544)

Description:
h5_get_file_size() was coded to return 0 if failed but
file size can be 0.  Changed the failure return value to -1
which is allowed by the returned type of off_t which is a signed
type.
Also changed the checking code of the stat call to just == 0
since that is how it is defined.

Test:
Could test it in heping only.  Both Sol and Copper failed to
compiled due to error in the Direct IO VFD code.
2006-10-11 22:55:06 -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
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
f06e8744a5 [svn-r12561] Description:
Update code formatting a little and refactor to add a better mechanism
for performing callbacks when removing records from the B-tree or deleting
entire B-tree.

Testing:
    FreeBSD 4.11 (sleipnir)
    Linux/64 2.4 (mir)
    Linux/32 2.4 (heping)
    Mac OS 10.4 (amazon)
2006-08-09 22:42:51 -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
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
3e8948df52 [svn-r11966] Purpose:
Code cleanup

Description:
    Style fixes for consistency & other minor cleanups

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Mac OSX (amazon)
    Linux 2.4
2006-02-26 22:30:22 -05:00
Quincey Koziol
6b45f5172c [svn-r11245] Purpose:
Code cleanup

Description:
    Trim trailing whitespace, which is making 'diff'ing the two branches
difficult.

Solution:
    Ran this script in each directory:

foreach f (*.[ch] *.cpp)
    sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end


Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-08-13 15:53:35 -05:00
Quincey Koziol
fcb67f0e86 [svn-r10195] Purpose:
New feature

Description:
    Add feature to modify an existing record in a B-tree

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-11 09:05:32 -05:00
Quincey Koziol
46dcfc7a49 [svn-r10185] Purpose:
New feature & bug fix

Description:
    Allow NULL 'op' for find operations to easily query the existance of a
record for a key during H5B2_find() operations.

    Fix H5B2_neighbor() to work properly with empty B-tree

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-10 21:27:59 -05:00
Quincey Koziol
451e55aac0 [svn-r10176] Purpose:
New feature

Description:
    Add routine to delete entire B-tree from a file.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-10 11:13:58 -05:00
Quincey Koziol
e79c145d91 [svn-r10173] Purpose:
Code cleanup

Description:
    Remove some extraneous ifdef's

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor for other testing
2005-03-09 14:53:27 -05:00
Quincey Koziol
ec169e7bc2 [svn-r10172] Purpose:
Bug fix & New feature

Description:
    Correct some situations where a write lock on the data in the metadata
cache was requested, but only a read lock is necessary.

    Add routine to find nearest neighbor record < or > to a query key.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-09 14:39:20 -05:00
Quincey Koziol
7f88485025 [svn-r10168] Purpose:
Bug fix & new tests

Description:
    Fix another couple of issues with record removal and add some more tests to
make certain removals work correctly.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-08 14:56:29 -05:00
Quincey Koziol
2df8540798 [svn-r10162] Purpose:
Bug fix & new tests

Description:
    Fix several errors in record removel routines, which should now be feature
complete for removing records at any location in the B-tree (further testing
will verify this)

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-08 11:18:58 -05:00
Quincey Koziol
4bcd59d351 [svn-r10159] Purpose:
Bug fix

Description:
    Corrected errors in record removal code to handle removing records in
higher nodes in the B-tree.

Platforms tested:
    FreebSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-07 15:12:57 -05:00
Quincey Koziol
630b2901c5 [svn-r10156] Purpose:
Bug fix & new feature

Description:
    Allow B-tree's height to be reduced when removing records.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-05 02:50:17 -05:00
Quincey Koziol
36b45feae5 [svn-r10155] Purpose:
More tests

Description:
    Add tests for removing records in the root of a level-1 B-tree and
promoting and merging leaf nodes.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-05 00:27:45 -05:00
Quincey Koziol
8d2ddf5170 [svn-r10154] Purpose:
Bug fix/new feature

Description:
    Tweak the record promotion algorithm to get it working correctly when
promoting and redistributing records.

    Added tests for that case.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-05 00:04:13 -05:00
Quincey Koziol
9845d40eb5 [svn-r10153] Purpose:
New feature

Description:
    Allow records in internal nodes to be removed, not just records in leaf
nodes.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-04 23:04:54 -05:00
Quincey Koziol
009f57c1ba [svn-r10152] Purpose:
Bug fix & new feature

Description:
    Fix error in 3-node redistribution when nodes are only moving into the
middle node from the left & right nodes (which happens sometimes during
record removals).

    Clean up internal insert & remove routines to remove lots of redundant
checking.

    Added 3->2 node merge routine to handle more record removal cases.

Platforms tested:
    FreeBSD 4.9 (sleipnir)
    Solaris 2.11 (shanti)
2005-03-04 21:51:55 -05:00
Quincey Koziol
156505bbf9 [svn-r10151] Purpose:
New feature

Description:
    Add code to handle 2->1 node merges during record removal.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-04 18:49:15 -05:00
Quincey Koziol
c153ca4d5e [svn-r10149] Purpose:
Bug fix & new feature

Description:
    Fix a couple of off-by-one errors in assertions (code was actually correct)
for 3 node redistributions.

    Remove "old" node removal code that is unused now.

    Add more tests that verify that 2-node and 3-node redistributions are
working correctly for removals.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-04 17:22:34 -05:00
Quincey Koziol
831be556f4 [svn-r10148] Purpose:
New test

Description:
    Add a couple more tests for removing records before I start modifying the
code further.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-03-04 16:48:54 -05:00
Quincey Koziol
84ffc9d1c1 [svn-r10135] Purpose:
Bug fix & new feature

Description:
    Fix problem with inserting existing keys into B-tree corrupting record
counts along the path to the failed insertion.

    Add more support for removing records, it's now handling removing records
from leaves of level-1 B-trees.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/parallel
    Solaris 2.9 (shanti)
2005-03-03 16:39:57 -05:00
Quincey Koziol
11a9d30177 [svn-r10094] Purpose:
New features & refactor

Description:
    Add basic record removal (only handles level-0 B-trees currently)

    Add query routine to check the number of records in a B-tree

    Add debugging routine to check the address of the root node in the B-tree

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-26 08:05:41 -05:00
Quincey Koziol
2be0f58f60 [svn-r10078] Purpose:
Bug fix & new feature

Description:
    Fix errors in tracking the total number of records "below" a node.

    Add feature to find the n'th record in a B-tree

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-24 16:44:30 -05:00
Quincey Koziol
b1485cfdcf [svn-r10077] Purpose:
New feature, refactor code

Description:
    Add call to search for a record in a B-tree by key value

    Refactored some of the existing callbacks to simplify them.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-24 12:23:26 -05:00
Quincey Koziol
e0a6b93e02 [svn-r10071] Purpose:
Bug fixes

Description:
    Fix several bugs in B-tree insertion code, which now appears to be fully
functional.  (Tested to 1,280,000 records at least...)

    Add random record insertion test to shake out boundary conditions, etc.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-23 16:32:06 -05:00
Quincey Koziol
e03fe7a647 [svn-r10047] Purpose:
New feature

Description:
    Allow internal nodes to perform 3->4 splits.  Inserting records should now
be feature complete.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-19 12:46:33 -05:00
Quincey Koziol
b5b1d7f713 [svn-r10046] Purpose:
New feature

Description:
    Allow 3 node redistributions to work on internal nodes.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-19 10:32:26 -05:00
Quincey Koziol
e0c3218a0a [svn-r10045] Purpose:
New feature

Description:
    Allow internal nodes in v2 B-tree to undergo 2->3 splits

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-19 09:49:20 -05:00
Quincey Koziol
cd93442df6 [svn-r10044] Purpose:
New feature

Description:
    Allow internal nodes in v2 B-tree to perform 2 node redistribution

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-18 16:21:47 -05:00
Quincey Koziol
29ccf4aa7a [svn-r10038] Purpose:
New test

Description:
    Add tests for splitting leaves in level-2 B-tree

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-02-17 16:43:36 -05:00
Quincey Koziol
9181ed0fa4 [svn-r10036] Purpose:
New test

Description:
    Add more regression tests for redistributing leafs in a level-2 B-tree

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Too minor to require h5committest
2005-02-17 16:12:45 -05:00
Quincey Koziol
45f2b11026 [svn-r10034] Purpose:
New test

Description:
    Add extra tests for v2 B-tree iterator

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/parallel
    Too minor to require h5committest
2005-02-17 15:40:13 -05:00
Quincey Koziol
27dbdb8c71 [svn-r10020] Purpose:
New feature

Description:
    Add code to iterate over all the records in a v2 B-tree.

Platforms tested:
    FreeBSD 4.11 (sleipnir)
    Solaris 2.9 (shanti)
2005-02-16 19:37:04 -05:00
Quincey Koziol
7316f0e7e7 [svn-r9995] Purpose:
New feature & bug fix

Description:
    Allow root node to split, forming a level 2 B-tree

    Fix error where wrong record was being copied up to parent node for a 2
node redistribution on the "right" side of the B-tree.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/parallel
    Solaris 2.9 (shanti)
2005-02-11 18:36:08 -05:00
Quincey Koziol
9bda1fcfd8 [svn-r9986] Purpose:
New feature & code cleanup

Description:
    Change some references from 'keys' to 'records', which is more correct for
this implementation.

    Added feature to allow preemptive 3 node record redistributions (for leaves
only currently)

    Added feature to perform preemptive 3->4 node splits (for leaves only
currently)

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/parallel
    Solaris 2.9 (shanti) w/purify
    Too minor to require h5committest
2005-02-11 01:50:20 -05:00
Quincey Koziol
ebfc303556 [svn-r9985] Purpose:
New feature & bug fixes

Description:
    Checkpoint v2 B-tree code after getting preemptive 2->3 node splitting
working (for leaf nodes only at the moment, however).

    Also, correct a problem with redistributing records that was probably
causing the failures on mir in yesterday's daily tests.

    Ran code through purify on shanti and cleared up some warnings.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/parallel
    Solaris 2.9 (shanti) w/purify
2005-02-10 21:40:16 -05:00
Quincey Koziol
9f76f83f48 [svn-r9971] Purpose:
New feature

Description:
    Checkpoint v2 B-tree code after getting 2 leaf record redistribution
working and tested.

Platforms tested:
    FreeBSD 4.11 (sleipnir) w/parallel
    Too minor to require h5committest
2005-02-09 16:32:07 -05:00