| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added a pointer to the cache that an entry is contained within to the
cache entry structure. This allows us to remove the file pointer from some of
the H5AC2 calls, easing the conversion of some of the cache clients (the free
space section info and fractal heap direct blocks, and probably others).
Removed file pointer from the H5AC2_unpin_entry() call.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.5.2 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Convert the symbol table node metadata cache client to use the new
journaling cache callbacks.
Also added a 'H5F_t *' parameter to the 'serialize' callback for the
journaling cache, which makes the client's job much easier.
Various minor coding cleanups, etc. also.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.5.3 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I now have substantial tests for this code -- enough (I hope) for
Mike M. to get started. However, the code is my no means fully tested.
I don't expect any obvious problems, but there are probably quite a few
relatively subtle bugs remaining. I'll be chasing these in the next
week.
For an example of setting up the cache to journal, see
setup_cache_for_journaling() in test/cache2_journal.c
Warnings:
1) For now, only enable journaling at file creation time -- code to
do this after the file is opened exists, but it hasn't been tested.
2) Right now the journal logging code is very inefficient, so expect
things to run slowly until Mike M. checks in his changes to address
this problem.
3) I have not checked in exemplar journal output files pending a fix
another minor bug in the journal logging code. Until then, the
journal tests create exemplars and then test against them -- a poor
way to find errors.
4) The USE_CORE_DRIVER has been moved to cache2_common.h.
5) When USE_CORE_DRIVER is FALSE, cache2_journal runs VERY slowly on
some system (i.e. 4 hours on Phoenix) -- but it runs fast on Kagiso
(~10 minutes). Don't know why, but would guess that the quantity
of RAM on the system has much to do with it.
Tested serial debug on Phonenix, and parallel debug on Kagiso
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While this code doesn't break any of the existing tests, it HAS NOT
been tested beyond that.
Also mods needed to integrate the journaling code with Quincey's latest
mods, and to adapt existing test code to slight changes caused by the
addition of journaling.
Finally, fixed an undefined variable bug in the HL code exposed by the
journaling mods.
Tested serial under Linux (Phoenix) and parallel under Linux (Kagiso).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Misc. cleanups found while compiling in other environments.
Still failing on linux machines with a memory corruption error and
not finished building in parallel yet either...
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Switch v1 B-tree nodes from using previous cache to use the new journaling
cache code. This is a major switch for the cache callbacks.
Switched the metadata caching code from having a pointer to the file it's
in to receiving a pointer to the file, when needed. This was necessary in
order to avoid crashing when two files IDs were open on the same underlying
file and one of those files was closed with cache entries using the file
pointers. Also took out the check in the caching code for reading off the
end of the file, which didn't play nicely with the multi-file VFD.
Switching the cache from having a pointer internally to requiring one
externally meant tweaking almost all the test code. :-/
Added correct exit codes to cache2 tests that didn't have them already,
so the 'make check' will stop when they fail.
Use the path to the h5diff in this build in the tools/h5recover testing
script, since we can't guarantee a user has HDF5 already installed.
Assorted minor tweaks to get everything to compile more cleanly and pass
all the tests (on my Mac :-).
Tested on:
Mac OS X (10.5.2) w/C++
(more testing coming up shortly, I just didn't have my "rsync testbed" set
up for this branch when I started making changes to the code)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Code to read and write the metadata journaling configuration block
and associated test code. (Quincey: Just recalled that I have not
converted the memory type of the metadata journaling configuration
block to H5FD_MEM_SUPER per our email conversation. It will be in
the next checkin.)
2) Dummy begin/end transaction calls on the off chance that Quincey
gets to working on this before I check in the real ones.
3) Updates to cache2 in test to reduce the size of the test according
to the value of the HDF5TestExpress environment variable. Run times
on Phoenix using the core file driver are as follows:
HDF5TestExpress = 0 20:20
HDF5TestExpress = 1 4:56
HDF5TestExpress = 2 3:18
HDF5TestExpress = 3 0:25
With HDF5TestExpress = 3, I skip the smoke checks entirely. With
HDF5TestExpress = 2, I set the number of itterations as low as it
can go without a major re-write. (Albert: I hope running with
HDF5TestExpress = 2 will work for you. If it doesn't, we will just
have to run with HDF5TestExpress = 3 on RedStorm, and skip the
smoke checks for now.
Tested serial on Phonenix and parallel on kagiso.
|
|
|
|
|
|
|
|
|
| |
journaling
superblock extension message. Created the file src/H5Omdj_msg.c and
moved journaling superblock extension message to it.
Tested serial on Phoenix, and parallel on Kagiso.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
note that both the H5C and H5C2 code have been updated.
Also checked in code to track journaling status in the super block.
Note that this code has not been tested -- but as best I can tell,
it does not break the existing regression tests.
Tested serial (debug and production) on Phoenix. Also tested parallel
on kagiso.
Note that regression test fails on kagiso (but not on phoenix) if
the cache2 serial tests are configured to use the core file driver.
Thus this code is check in with the core file driver optimization
of the cache2 tests disabled. To turn it on, set the USE_CORE_DRIVER
#define to TRUE.
|
|
branch -- this commit needed at I forgot to svn add the new files
created in support of metadata journaling.
Again, this version may not compile.
|