Grayskull Repository branch, master, updated. git-migration-366-g8a337d5
A ref change was pushed to the repository containing the project "Grayskull Repository". The branch, master has been updated via 8a337d5a23937e5bc614cb0185286e294fa4e0e9 (commit) from 0ab2aafa5ccb295dad1a766c376072c0383620e2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8a337d5a23937e5bc614cb0185286e294fa4e0e9 Author: Phil Carns <[email protected]> Date: Fri Jan 29 14:26:13 2010 -0500 hack test program do key/val style fork access too ----------------------------------------------------------------------- Summary of changes: .../cosd-prototype/test/cosd-bench-concurrent.gs | 71 +++++++++++++------ 1 files changed, 48 insertions(+), 23 deletions(-) Diff of changes: diff --git a/code/src/gsl/resources/cosd-prototype/test/cosd-bench-concurrent.gs b/code/src/gsl/resources/cosd-prototype/test/cosd-bench-concurrent.gs index dafa470..c4848b4 100644 --- a/code/src/gsl/resources/cosd-prototype/test/cosd-bench-concurrent.gs +++ b/code/src/gsl/resources/cosd-prototype/test/cosd-bench-concurrent.gs @@ -47,14 +47,20 @@ static double Wtime(void) static double start_tm; static double end_tm; static int64_t total_size = 0; -int concurrent; +static int concurrent; +static char data_mode; +static uint64_t first_version; +static uint64_t version; static __blocking int do_cosd_test(void) { int ret; + int w_flags = COSD_FLAG_AUTO_TXN; + + if(data_mode == 'k') + w_flags |= COSD_FLAG_TRUNC_WRITE; uint64_t out_oid1; - uint64_t version; ret = gs_cosd_create(1, &out_oid1); if(ret == -EEXIST) @@ -73,6 +79,7 @@ static __blocking int do_cosd_test(void) printf("Error getting version number for oid=1: %d\n", ret); return(1); } + first_version = version; start_tm = Wtime(); @@ -85,6 +92,9 @@ static __blocking int do_cosd_test(void) pprivate struct bench_op* tmp_op; pprivate int b_ret; pprivate int64_t out_size; + pprivate int64_t keyval_offset = 0; + pprivate int64_t* offset_ptr; + pprivate uint64_t fork; /* TODO: make buffer size configurable, and check that * nothing in workload desc is bigger than this */ @@ -110,36 +120,33 @@ static __blocking int do_cosd_test(void) total_size += tmp_op->size; assert(tmp_op->size <= buffer_size); - if(tmp_op->type == WRITE) + if(data_mode == 'k') { - ret = gs_cosd_txn_open(1, 0, b_version); - if(ret != 0) - { - /* TODO: err handling */ - assert(0); - } + offset_ptr = &keyval_offset; + fork = tmp_op->offset; + } + else + { + offset_ptr = &tmp_op->offset; + fork = 0; + } - b_ret = gs_cosd_write(1, 0, b_version, &buffer, + if(tmp_op->type == WRITE) + { + b_ret = gs_cosd_write(1, fork, b_version, &buffer, &tmp_op->size, 1, &tmp_op->offset, - &tmp_op->size, 1, 0); + &tmp_op->size, 1, w_flags); if(b_ret < 0) { /* TODO: error handling */ assert(0); } - - ret = gs_cosd_txn_close(1, 0, b_version); - if(ret != 0) - { - /* TODO: error handling */ - assert(0); - } } else { assert(tmp_op->type == READ); - b_ret = gs_cosd_read(1, 0, &buffer, &tmp_op->size, 1, + b_ret = gs_cosd_read(1, fork, &buffer, &tmp_op->size, 1, &tmp_op->offset, &tmp_op->size, 1, &out_size); if(b_ret < 0) { @@ -189,31 +196,48 @@ int main(int argc, char *argv[]) int ret; struct bench_op* tmp_op; - if(argc != 5) + if(argc != 6) { - fprintf(stderr, "Usage: cosd1 <1|2> <workload description file> <cosd dir> <concurrent ops>\n"); + fprintf(stderr, "Usage: cosd1 <1|2> <workload description file> <cosd dir> <concurrent ops> <k|d>\n"); fprintf(stderr, " # 1 for polling\n"); fprintf(stderr, " # 2 for thread-per-op\n"); + fprintf(stderr, " # k for key/val mode\n"); + fprintf(stderr, " # d for data mode\n"); return(-1); } sscanf(argv[1], "%d", &mode); if(mode > 2 || mode < 1) { - fprintf(stderr, "Usage: cosd1 <1|2> <workload description file> <cosd dir> <concurrent ops>\n"); + fprintf(stderr, "Usage: cosd1 <1|2> <workload description file> <cosd dir> <concurrent ops> <k|d>\n"); fprintf(stderr, " # 1 for polling\n"); fprintf(stderr, " # 2 for thread-per-op\n"); + fprintf(stderr, " # k for key/val mode\n"); + fprintf(stderr, " # d for data mode\n"); return(-1); } ret = sscanf(argv[4], "%d", &concurrent); if(ret != 1 || concurrent < 1) { - fprintf(stderr, "Usage: cosd1 <1|2> <workload description file> <cosd dir> <concurrent ops>\n"); + fprintf(stderr, "Usage: cosd1 <1|2> <workload description file> <cosd dir> <concurrent ops> <k|d>\n"); fprintf(stderr, " # 1 for polling\n"); fprintf(stderr, " # 2 for thread-per-op\n"); + fprintf(stderr, " # k for key/val mode\n"); + fprintf(stderr, " # d for data mode\n"); } + ret = sscanf(argv[5], "%c", &data_mode); + if(ret != 1 || (data_mode != 'k' && data_mode != 'd')) + { + fprintf(stderr, "Usage: cosd1 <1|2> <workload description file> <cosd dir> <concurrent ops> <k|d>\n"); + fprintf(stderr, " # 1 for polling\n"); + fprintf(stderr, " # 2 for thread-per-op\n"); + fprintf(stderr, " # k for key/val mode\n"); + fprintf(stderr, " # d for data mode\n"); + } + + /* parse description of workload */ desc = fopen(argv[2], "r"); if(!desc) @@ -273,6 +297,7 @@ int main(int argc, char *argv[]) printf("# Moved %lld bytes in %f seconds.\n", lld(total_size), (end_tm-start_tm)); printf("%f MB/s\n", (((double)total_size)/(1024.0*1024.0))/(end_tm-start_tm)); + printf("%f ops/s\n", ((double)(version-first_version))/(end_tm-start_tm)); return 0; } hooks/post-receive -- Grayskull Repository
participants (1)
-
noreply@mcs.anl.gov