summaryrefslogtreecommitdiffstats
path: root/src/H5B2.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r12644] Description:Quincey Koziol2006-09-051-46/+69
| | | | | | | | | | | | | 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)
* [svn-r12638] Description:Quincey Koziol2006-09-041-4/+3
| | | | | | | | | | | | 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)
* [svn-r12631] Description:Quincey Koziol2006-08-261-19/+20
| | | | | | | | | | | | | | | | | 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)
* [svn-r12619] Description:Quincey Koziol2006-08-231-1/+1
| | | | | | | | | | | 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
* [svn-r12561] Description:Quincey Koziol2006-08-101-29/+39
| | | | | | | | | | | | 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)
* [svn-r12093] Purpose:Quincey Koziol2006-03-151-0/+5
| | | | | | | | | | | | | 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)
* [svn-r11968] Purpose:Quincey Koziol2006-02-271-3319/+2
| | | | | | | | | | | | | | 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)
* [svn-r11966] Purpose:Quincey Koziol2006-02-271-283/+52
| | | | | | | | | | | | Code cleanup Description: Style fixes for consistency & other minor cleanups Platforms tested: FreeBSD 4.11 (sleipnir) Mac OSX (amazon) Linux 2.4
* [svn-r11712] Purpose:Quincey Koziol2005-11-151-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New feature Description: Check in baseline for compact group revisions, which radically revises the source code for managing groups and object headers. WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! This initiates the "unstable" phase of the 1.7.x branch, leading up to the 1.8.0 release. Please test this code, but do _NOT_ keep files created with it - the format will change again before the release and you will not be able to read your old files!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! Solution: There's too many changes to really describe them all, but some of them include: - Stop abusing the H5G_entry_t structure and split it into two separate structures for non-symbol table node use within the library: H5O_loc_t for object locations in a file and H5G_name_t to store the path to an opened object. H5G_entry_t is now only used for storing symbol table entries on disk. - Retire H5G_namei() in favor of a more general mechanism for traversing group paths and issuing callbacks on objects located. This gets us out of the business of hacking H5G_namei() for new features, generally. - Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t - Lots more... Platforms tested: h5committested and maybe another dozen configurations.... :-)
* [svn-r11686] Purpose:Quincey Koziol2005-11-071-6/+25
| | | | | | | | | | | | | | | | | | | New feature Description: Add in baseline "object copy" code from Peter [in the form of a new API routine: H5Gcopy()]. There's still some work to do (like handling variable- length datatypes and possibly support for references) and it hasn't been tested on mounted files yet, but the core functionality is there and working correctly. I've also got a set of patches to update the 1.6 branch with tweaks to keep the branches mostly in sync, but Elena will kill me if I import them before the 1.6.5 release is out... :-) Platforms tested: FreeBSD 4.11 (sleipnir) h5committested
* [svn-r11245] Purpose:Quincey Koziol2005-08-131-43/+43
| | | | | | | | | | | | | | | | | | | | 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
* [svn-r11014] Purpose:Quincey Koziol2005-07-021-350/+154
| | | | | | | | | | | | Code cleanup Description: Refactor metadata cache to merge "dirtied" flag in with other flags for H5AC_unprotect and H5C_unprotect. Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r10978] Purpose:John Mainzer2005-06-241-157/+551
| | | | | | | | | | | | | | | | | | | | | | | | | | | Interim checkin of code changes moving management of the is_dirty flag into the cache code. Description: Prior to this checkin, management of the is_dirty flag was handled above the level of the metadata cache. This can no longer be allowed, as it introduces a race condition in the proposed fix for a cache coherency bug in PHDF5. Solution: Move management fo the is_dirty flag to the cache code proper. Entries are now marked as dirty via a flag on the unprotect call. Platforms tested: h5committested Misc. update:
* [svn-r10705] Purpose:Quincey Koziol2005-04-301-5/+1
| | | | | | | | | | | Code cleanup Description: Clean up a few compiler warnings of various sorts... Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10628] Purpose:Quincey Koziol2005-04-181-3/+4
| | | | | | | | | | | Code cleanup Description: Clean up various warnings reported by the Windows team. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10503] Purpose:Quincey Koziol2005-03-291-1/+1
| | | | | | | | | | | Fix typo Description: Fix typo in comment. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10229] Purpose:Quincey Koziol2005-03-171-2/+2
| | | | | | | | | | | Update comments Description: Correct some minor errors in comments/error strings. Platforms tested: FreeBSD 4.11 (sleipnir) w/parallel Solaris 2.9 (shanti)
* [svn-r10196] Purpose:Quincey Koziol2005-03-111-2/+2
| | | | | | | | | | Code cleanup Description: Actually use the new error code defined... :-) Platforms tested: None, too minor to require re-test.
* [svn-r10195] Purpose:Quincey Koziol2005-03-111-0/+181
| | | | | | | | | | | New feature Description: Add feature to modify an existing record in a B-tree Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r10185] Purpose:Quincey Koziol2005-03-111-3/+9
| | | | | | | | | | | | | | 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)
* [svn-r10183] Purpose:Quincey Koziol2005-03-111-1/+1
| | | | | | | Fix comment Platforms tested: None, too minor...
* [svn-r10177] Purpose:Quincey Koziol2005-03-101-3/+2
| | | | | | | | | | Update comments Description: Correct comment about how H5B2_create() works. Platforms tested: None, just minor comment change.
* [svn-r10176] Purpose:Quincey Koziol2005-03-101-6/+133
| | | | | | | | | | | New feature Description: Add routine to delete entire B-tree from a file. Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r10172] Purpose:Quincey Koziol2005-03-091-14/+267
| | | | | | | | | | | | | | 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)
* [svn-r10169] Purpose:Quincey Koziol2005-03-081-1/+2
| | | | | | | | | | | Bug fix Description: Correct minor array bounds read error of 0 bytes that purify found. Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r10168] Purpose:Quincey Koziol2005-03-081-1/+0
| | | | | | | | | | | | 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)
* [svn-r10162] Purpose:Quincey Koziol2005-03-081-10/+4
| | | | | | | | | | | | | 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)
* [svn-r10159] Purpose:Quincey Koziol2005-03-071-28/+39
| | | | | | | | | | | | 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)
* [svn-r10156] Purpose:Quincey Koziol2005-03-051-18/+74
| | | | | | | | | | | 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)
* [svn-r10154] Purpose:Quincey Koziol2005-03-051-13/+10
| | | | | | | | | | | | | | 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)
* [svn-r10153] Purpose:Quincey Koziol2005-03-051-2/+111
| | | | | | | | | | | | 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)
* [svn-r10152] Purpose:Quincey Koziol2005-03-051-58/+292
| | | | | | | | | | | | | | | | | | 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)
* [svn-r10151] Purpose:Quincey Koziol2005-03-041-5/+168
| | | | | | | | | | | New feature Description: Add code to handle 2->1 node merges during record removal. Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r10149] Purpose:Quincey Koziol2005-03-041-296/+2
| | | | | | | | | | | | | | | | | 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)
* [svn-r10135] Purpose:Quincey Koziol2005-03-031-248/+676
| | | | | | | | | | | | | | | 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)
* [svn-r10094] Purpose:Quincey Koziol2005-02-261-22/+216
| | | | | | | | | | | | | | | 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)
* [svn-r10078] Purpose:Quincey Koziol2005-02-241-89/+278
| | | | | | | | | | | | | 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)
* [svn-r10077] Purpose:Quincey Koziol2005-02-241-84/+258
| | | | | | | | | | | | | 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)
* [svn-r10071] Purpose:Quincey Koziol2005-02-231-46/+429
| | | | | | | | | | | | | | 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)
* [svn-r10047] Purpose:Quincey Koziol2005-02-191-7/+131
| | | | | | | | | | | | 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)
* [svn-r10046] Purpose:Quincey Koziol2005-02-191-6/+95
| | | | | | | | | | | New feature Description: Allow 3 node redistributions to work on internal nodes. Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r10045] Purpose:Quincey Koziol2005-02-191-7/+102
| | | | | | | | | | | 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)
* [svn-r10044] Purpose:Quincey Koziol2005-02-181-5/+77
| | | | | | | | | | | 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)
* [svn-r10036] Purpose:Quincey Koziol2005-02-171-4/+4
| | | | | | | | | | | 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
* [svn-r10020] Purpose:Quincey Koziol2005-02-171-0/+176
| | | | | | | | | | | 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)
* [svn-r9995] Purpose:Quincey Koziol2005-02-111-57/+130
| | | | | | | | | | | | | | 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)
* [svn-r9986] Purpose:Quincey Koziol2005-02-111-50/+407
| | | | | | | | | | | | | | | | | | | 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
* [svn-r9985] Purpose:Quincey Koziol2005-02-111-22/+209
| | | | | | | | | | | | | | | | | 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
* [svn-r9971] Purpose:Quincey Koziol2005-02-091-80/+126
| | | | | | | | | | | | 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
* [svn-r9962] Purpose:Quincey Koziol2005-02-081-2/+133
| | | | | | | | | | | | | | | Bug fix & code update Description: Fix error in new free-list factory routines that was causing errors on tungsten, et al. Also, checkpoint v2 B-tree code. Platforms tested: FreeBSD 4.11 (sleipnir) w/parallel Linux 2.4 (tungsten) Otherwise too minor to require h5committest