summaryrefslogtreecommitdiffstats
path: root/src/H5B2pkg.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2006-09-04 16:37:41 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2006-09-04 16:37:41 (GMT)
commitd1e7ac416e81d70c98a36f7ab265bf58e2a224c4 (patch)
treef9a002285bd1ce3e647cdd0eaf2960207160a364 /src/H5B2pkg.h
parent35a3022373a424e99db29a84063d0511ffcefac9 (diff)
downloadhdf5-d1e7ac416e81d70c98a36f7ab265bf58e2a224c4.zip
hdf5-d1e7ac416e81d70c98a36f7ab265bf58e2a224c4.tar.gz
hdf5-d1e7ac416e81d70c98a36f7ab265bf58e2a224c4.tar.bz2
[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)
Diffstat (limited to 'src/H5B2pkg.h')
-rw-r--r--src/H5B2pkg.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/H5B2pkg.h b/src/H5B2pkg.h
index cd81022..5c861b7 100644
--- a/src/H5B2pkg.h
+++ b/src/H5B2pkg.h
@@ -138,7 +138,7 @@ typedef struct H5B2_shared_t {
/* Information set by user */
unsigned split_percent; /* Percent full at which to split the node, when inserting */
unsigned merge_percent; /* Percent full at which to merge the node, when deleting */
- size_t node_size; /* Size of all nodes, in bytes */
+ size_t node_size; /* Size of B-tree nodes, in bytes */
size_t rrec_size; /* Size of "raw" (on disk) record, in bytes */
/* Derived information from user's information */
@@ -195,6 +195,14 @@ typedef struct {
unsigned depth; /* Depth of node to load */
} H5B2_int_load_ud1_t;
+#ifdef H5B2_TESTING
+/* Node information for testing */
+typedef struct {
+ unsigned depth; /* Depth of node */
+ unsigned nrec; /* Number of records in node */
+} H5B2_node_info_test_t;
+#endif /* H5B2_TESTING */
+
/*****************************/
/* Package Private Variables */
@@ -298,6 +306,11 @@ H5_DLL herr_t H5B2_leaf_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr,
#ifdef H5B2_TESTING
H5_DLL herr_t H5B2_get_root_addr_test(H5F_t *f, hid_t dxpl_id,
const H5B2_class_t *type, haddr_t addr, haddr_t *root_addr);
+H5_DLL int H5B2_get_node_depth_test(H5F_t *f, hid_t dxpl_id,
+ const H5B2_class_t *type, haddr_t addr, void *udata);
+H5_DLL herr_t H5B2_get_node_info_test(H5F_t *f, hid_t dxpl_id,
+ const H5B2_class_t *type, haddr_t addr, void *udata,
+ H5B2_node_info_test_t *ninfo);
#endif /* H5B2_TESTING */
#endif /* _H5B2pkg_H */