diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2015-04-17 20:49:27 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2015-04-17 20:49:27 (GMT) |
commit | 7bf3a426e8634c851d9c550fd980f07d3e29fc1b (patch) | |
tree | 4102bab36bd666a2caf3421e05a6e3b1b350220c /src/H5Dpkg.h | |
parent | c6717e8134be832103cf777d3685d61d225b61c3 (diff) | |
download | hdf5-7bf3a426e8634c851d9c550fd980f07d3e29fc1b.zip hdf5-7bf3a426e8634c851d9c550fd980f07d3e29fc1b.tar.gz hdf5-7bf3a426e8634c851d9c550fd980f07d3e29fc1b.tar.bz2 |
[svn-r26837] Description:
Separate allocating chunk on disk from inserting the chunk record into the
index. This allows a "SWMR-safe" insert/update of chunks (the chunk is always
allocated -> written -> inserted/updated in the index).
Tested on:
Mac OSX/64 10.10.2 (amazon) w/parallel & serial
Linux/32 2.6.18 (jam) w/serial & parallel
Diffstat (limited to 'src/H5Dpkg.h')
-rw-r--r-- | src/H5Dpkg.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/H5Dpkg.h b/src/H5Dpkg.h index 06cc2c0..a3a3985 100644 --- a/src/H5Dpkg.h +++ b/src/H5Dpkg.h @@ -33,6 +33,7 @@ /* Other private headers needed by this file */ #include "H5ACprivate.h" /* Metadata cache */ +#include "H5Fprivate.h" /* File access */ #include "H5Gprivate.h" /* Groups */ #include "H5SLprivate.h" /* Skip lists */ #include "H5Tprivate.h" /* Datatypes */ @@ -238,8 +239,8 @@ typedef struct H5D_chk_idx_info_t { * The chunk's file address, filter mask and size on disk are not key values. */ typedef struct H5D_chunk_rec_t { - uint32_t nbytes; /* Size of stored data */ hsize_t offset[H5O_LAYOUT_NDIMS]; /* Logical offset to start */ + uint32_t nbytes; /* Size of stored data */ unsigned filter_mask; /* Excluded filters */ haddr_t chunk_addr; /* Address of chunk in file */ } H5D_chunk_rec_t; @@ -265,8 +266,7 @@ typedef struct H5D_chunk_ud_t { /* Upward */ unsigned idx_hint; /*index of chunk in cache, if present */ - haddr_t addr; /*file address of chunk */ - uint32_t nbytes; /*size of stored data */ + H5F_block_t chunk_block; /*offset/length of chunk in file */ unsigned filter_mask; /*excluded filters */ } H5D_chunk_ud_t; @@ -496,7 +496,7 @@ typedef struct H5D_rdcc_ent_t { hsize_t offset[H5O_LAYOUT_NDIMS]; /*chunk name */ uint32_t rd_count; /*bytes remaining to be read */ uint32_t wr_count; /*bytes remaining to be written */ - haddr_t chunk_addr; /*address of chunk in file */ + H5F_block_t chunk_block; /*offset/length of chunk in file */ uint8_t *chunk; /*the unfiltered chunk data */ unsigned idx; /*index in hash table */ struct H5D_rdcc_ent_t *next;/*next item in doubly-linked list */ |