Triton Repository branch, master, updated. b7dc68eef2cbbf499c8d1a7f87a2e1e4e4b6e683
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Triton Repository". The branch, master has been updated via b7dc68eef2cbbf499c8d1a7f87a2e1e4e4b6e683 (commit) from cecec3e2e49839556db09fa697380158853d07e4 (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 b7dc68eef2cbbf499c8d1a7f87a2e1e4e4b6e683 Author: Phil Carns <[email protected]> Date: Thu Jul 29 13:47:16 2010 -0400 add niid argument to relevant vosd functions ----------------------------------------------------------------------- Summary of changes: .../prototype/tests/vosd-bench-concurrent.ae | 6 +- .../prototype/tests/vosd-multi-object.ae | 8 ++-- code/src/versioned-osd/prototype/tests/vosd1.ae | 54 ++++++++++---------- code/src/versioned-osd/prototype/versioned-osd.ae | 51 ++++++++++++++---- code/src/versioned-osd/prototype/versioned-osd.hae | 23 ++++++--- 5 files changed, 88 insertions(+), 54 deletions(-) Diff of changes: diff --git a/code/src/versioned-osd/prototype/tests/vosd-bench-concurrent.ae b/code/src/versioned-osd/prototype/tests/vosd-bench-concurrent.ae index 06e6411..0b9b098 100644 --- a/code/src/versioned-osd/prototype/tests/vosd-bench-concurrent.ae +++ b/code/src/versioned-osd/prototype/tests/vosd-bench-concurrent.ae @@ -48,7 +48,7 @@ static __blocking int do_vosd_test(void) if(data_mode == 'k') w_flags |= VOSD_FLAG_TRUNC_WRITE; - tret = vosd_create(oid); + tret = vosd_create(oid, 0); if(tret == TRITON_ERR_EXIST) { printf("# operating on existing object.\n"); @@ -120,7 +120,7 @@ static __blocking int do_vosd_test(void) { b_ret = vosd_write(oid, fork, b_version, &buffer, &tmp_op->size, 1, &tmp_op->offset, - &tmp_op->size, 1, w_flags); + &tmp_op->size, 1, w_flags, 0); assert(b_ret == TRITON_SUCCESS); } else @@ -128,7 +128,7 @@ static __blocking int do_vosd_test(void) assert(tmp_op->type == READ); b_ret = vosd_read(oid, fork, &buffer, &tmp_op->size, 1, - &tmp_op->offset, &tmp_op->size, 1, &out_size); + &tmp_op->offset, &tmp_op->size, 1, &out_size, 0); assert(b_ret == TRITON_SUCCESS); assert(out_size == tmp_op->size); } diff --git a/code/src/versioned-osd/prototype/tests/vosd-multi-object.ae b/code/src/versioned-osd/prototype/tests/vosd-multi-object.ae index 2b69854..1e503df 100644 --- a/code/src/versioned-osd/prototype/tests/vosd-multi-object.ae +++ b/code/src/versioned-osd/prototype/tests/vosd-multi-object.ae @@ -33,7 +33,7 @@ static __blocking int do_vosd_test(void) for(i=0; i<500; i++) { oid = triton_uint128_from_uint64(i+1); - tret = vosd_create(oid); + tret = vosd_create(oid, 0); if(tret != TRITON_SUCCESS && tret != TRITON_ERR_EXIST) { printf("Error creating oid=%llu\n", llu(i+1)); @@ -69,7 +69,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 0; obj_szs[0] = 1024; tret = vosd_write(oid, 0, version_array[i], buffer_offsets, buffer_szs, 1, - obj_offsets, obj_szs, 1, VOSD_FLAG_AUTO_TXN); + obj_offsets, obj_szs, 1, VOSD_FLAG_AUTO_TXN, 0); if(tret != TRITON_SUCCESS) { printf("Error writing 0-1024 on oid=%llu: %d\n", llu(i+1), ret); @@ -89,7 +89,7 @@ static __blocking int do_vosd_test(void) { oid = triton_uint128_from_uint64(i+1); - tret = vosd_remove(oid); + tret = vosd_remove(oid, 0); if(tret != TRITON_SUCCESS) { printf("Error deleting oid=%llu\n", i+1); @@ -106,7 +106,7 @@ static __blocking int do_vosd_test(void) /* try to delete something that doesn't exist */ oid = triton_uint128_from_uint64(0); - tret = vosd_remove(oid); + tret = vosd_remove(oid, 0); assert(tret == TRITON_ERR_NOENT); #if 0 triton_error_destroy(tret); diff --git a/code/src/versioned-osd/prototype/tests/vosd1.ae b/code/src/versioned-osd/prototype/tests/vosd1.ae index d35a16c..17fa278 100644 --- a/code/src/versioned-osd/prototype/tests/vosd1.ae +++ b/code/src/versioned-osd/prototype/tests/vosd1.ae @@ -35,7 +35,7 @@ static __blocking int do_vosd_test(void) buffer = void_buffer; printf("Creating oid 1 ...\n"); - tret = vosd_create(oid); + tret = vosd_create(oid, 0); if(tret != TRITON_SUCCESS && tret != TRITON_ERR_EXIST) { free(buffer); @@ -76,7 +76,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("opening txn...\n"); - tret = vosd_txn_open(oid, 0, (++version)); + tret = vosd_txn_open(oid, 0, (++version), 0); if(tret != TRITON_SUCCESS) { printf("Error opening txn 1.\n"); @@ -94,7 +94,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 0; obj_szs[0] = 1024; tret = vosd_write(oid, 0, (version), buffer_offsets, buffer_szs, 1, - obj_offsets, obj_szs, 1, 0); + obj_offsets, obj_szs, 1, 0, 0); if(tret != TRITON_SUCCESS) { printf("Error writing 0-1024.\n"); @@ -133,7 +133,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("opening txn...\n"); version = version+2; - tret = vosd_txn_open(oid, 0, (version)); + tret = vosd_txn_open(oid, 0, (version), 0); if(tret != TRITON_SUCCESS) { printf("Error opening txn 1: %d\n", ret); @@ -157,7 +157,7 @@ static __blocking int do_vosd_test(void) obj_szs[0] = 100; obj_szs[1] = 924; tret = vosd_write(oid, 0, (version), buffer_offsets, buffer_szs, 3, - obj_offsets, obj_szs, 2, 0); + obj_offsets, obj_szs, 2, 0, 0); if(tret != TRITON_SUCCESS) { printf("Error writing with listio: %d\n", ret); @@ -195,7 +195,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("opening txn...\n"); - tret = vosd_txn_open(oid, 0, (version-1)); + tret = vosd_txn_open(oid, 0, (version-1), 0); if(tret != TRITON_SUCCESS) { printf("Error opening txn 1: %d\n", ret); @@ -213,7 +213,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 200; obj_szs[0] = 4096; tret = vosd_write(oid, 0, (version-1), buffer_offsets, buffer_szs, 1, - obj_offsets, obj_szs, 1, 0); + obj_offsets, obj_szs, 1, 0, 0); if(tret != TRITON_SUCCESS) { printf("Error writing with listio: %d\n", ret); @@ -256,7 +256,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 1024; obj_szs[0] = 512; tret = vosd_read(oid, 0, buffer_offsets, buffer_szs, 1, obj_offsets, - obj_szs, 1, &out_size); + obj_szs, 1, &out_size, 0); assert(out_size == 512); if(tret != TRITON_SUCCESS) { @@ -276,7 +276,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 51200; obj_szs[0] = 512; tret = vosd_read(oid, 0, buffer_offsets, buffer_szs, 1, obj_offsets, - obj_szs, 1, &out_size); + obj_szs, 1, &out_size, 0); if(tret != TRITON_SUCCESS || out_size != 0) { printf("Error: bad error code or out size from EOF read\n"); @@ -290,7 +290,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("checking size of fork 0...\n"); - tret = vosd_get_size(oid, 0, obj_offsets); + tret = vosd_get_size(oid, 0, obj_offsets, 0); if(tret != TRITON_SUCCESS) { printf("Error: bad error code from vosd_get_size()\n"); @@ -303,7 +303,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("checking size of fork 1...\n"); - tret = vosd_get_size(oid, 1, obj_offsets); + tret = vosd_get_size(oid, 1, obj_offsets, 0); if(tret != TRITON_SUCCESS) { printf("Error: bad error code from vosd_get_size()\n"); @@ -324,7 +324,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 13; obj_szs[0] = 1524; tret = vosd_read(oid, 0, buffer_offsets, buffer_szs, 2, obj_offsets, - obj_szs, 1, &out_size); + obj_szs, 1, &out_size, 0); if(tret != TRITON_SUCCESS) { printf("Error: could not read unaligned buffers: %d\n", ret); @@ -339,7 +339,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("opening txn...\n"); - tret = vosd_txn_open(oid, 0, (++version)); + tret = vosd_txn_open(oid, 0, (++version), 0); if(tret != TRITON_SUCCESS) { printf("Error opening txn 1: %d\n", ret); @@ -358,7 +358,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 10024; obj_szs[0] = 13; tret = vosd_write(oid, 0, (version), buffer_offsets, buffer_szs, 1, - obj_offsets, obj_szs, 1, 0); + obj_offsets, obj_szs, 1, 0, 0); if(tret != TRITON_SUCCESS) { printf("Error writing 10024-10037: %d\n", ret); @@ -393,7 +393,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 9525; obj_szs[0] = 512; tret = vosd_read(oid, 0, buffer_offsets, buffer_szs, 1, obj_offsets, - obj_szs, 1, &out_size); + obj_szs, 1, &out_size, 0); if(tret != TRITON_SUCCESS) { printf("Error on read with hole: %d\n", ret); @@ -414,7 +414,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("writing to two forks...\n"); - tret = vosd_txn_open(oid, 1, (++version)); + tret = vosd_txn_open(oid, 1, (++version), 0); assert(tret == TRITON_SUCCESS); buffer_offsets[0] = buffer; @@ -423,13 +423,13 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 0; obj_szs[0] = 6; tret = vosd_write(oid, 1, (version), buffer_offsets, buffer_szs, 1, - obj_offsets, obj_szs, 1, 0); + obj_offsets, obj_szs, 1, 0, 0); assert(tret == TRITON_SUCCESS); tret = vosd_txn_close(oid, 1, (version)); assert(tret == TRITON_SUCCESS); - tret = vosd_txn_open(oid, 2, (++version)); + tret = vosd_txn_open(oid, 2, (++version), 0); assert(tret == TRITON_SUCCESS); buffer_offsets[0] = buffer; @@ -438,7 +438,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 0; obj_szs[0] = 6; tret = vosd_write(oid, 2, (version), buffer_offsets, buffer_szs, 1, - obj_offsets, obj_szs, 1, 0); + obj_offsets, obj_szs, 1, 0, 0); assert(tret == TRITON_SUCCESS); tret = vosd_txn_close(oid, 2, (version)); @@ -452,7 +452,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 0; obj_szs[0] = 512; tret = vosd_read(oid, 1, buffer_offsets, buffer_szs, 1, obj_offsets, - obj_szs, 1, &out_size); + obj_szs, 1, &out_size, 0); assert(tret == TRITON_SUCCESS && out_size == 6); printf("DONE\n"); @@ -463,7 +463,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 0; obj_szs[0] = 256; tret = vosd_read(oid, 2, buffer_offsets, buffer_szs, 1, obj_offsets, - obj_szs, 1, &out_size); + obj_szs, 1, &out_size, 0); assert(tret == TRITON_SUCCESS && out_size == 6); printf("buffer from fork 1: %s, buffer from fork 2: %s\n", @@ -476,7 +476,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("checking size of fork 0...\n"); - tret = vosd_get_size(oid, 0, obj_offsets); + tret = vosd_get_size(oid, 0, obj_offsets, 0); if(tret != TRITON_SUCCESS) { printf("Error: bad error code from vosd_get_size()\n"); @@ -489,7 +489,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("checking size of fork 1...\n"); - tret = vosd_get_size(oid, 1, obj_offsets); + tret = vosd_get_size(oid, 1, obj_offsets, 0); if(tret != TRITON_SUCCESS) { printf("Error: bad error code from vosd_get_size()\n"); @@ -502,7 +502,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("checking size of fork 2...\n"); - tret = vosd_get_size(oid, 2, obj_offsets); + tret = vosd_get_size(oid, 2, obj_offsets, 0); if(tret != TRITON_SUCCESS) { printf("Error: bad error code from vosd_get_size()\n"); @@ -517,7 +517,7 @@ static __blocking int do_vosd_test(void) /********************************************************/ printf("opening txn...\n"); - tret = vosd_txn_open(oid, 0, (++version)); + tret = vosd_txn_open(oid, 0, (++version), 0); if(tret != TRITON_SUCCESS) { printf("Error opening txn 1: %d\n", ret); @@ -535,7 +535,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 0; obj_szs[0] = 1024; tret = vosd_write(oid, 0, (version), buffer_offsets, buffer_szs, 1, - obj_offsets, obj_szs, 1, VOSD_FLAG_TRUNC_WRITE); + obj_offsets, obj_szs, 1, VOSD_FLAG_TRUNC_WRITE, 0); if(tret != TRITON_SUCCESS) { printf("Error writing 0-1024: %d\n", ret); @@ -571,7 +571,7 @@ static __blocking int do_vosd_test(void) obj_offsets[0] = 512; obj_szs[0] = 512; tret = vosd_write(oid, 0, (++version), buffer_offsets, buffer_szs, 1, - obj_offsets, obj_szs, 1, VOSD_FLAG_AUTO_TXN); + obj_offsets, obj_szs, 1, VOSD_FLAG_AUTO_TXN, 0); if(tret != TRITON_SUCCESS) { printf("Error writing 512-1024\n"); diff --git a/code/src/versioned-osd/prototype/versioned-osd.ae b/code/src/versioned-osd/prototype/versioned-osd.ae index 10179cf..4303862 100644 --- a/code/src/versioned-osd/prototype/versioned-osd.ae +++ b/code/src/versioned-osd/prototype/versioned-osd.ae @@ -1563,10 +1563,13 @@ static __blocking triton_ret_t __vosd_truncate_retryable(uint128_t oid, uint64_t return(tret); } -__blocking triton_ret_t vosd_truncate(uint128_t oid, uint64_t fork, int64_t size) +__blocking triton_ret_t vosd_truncate(uint128_t oid, uint64_t fork, int64_t size, uint64_t niid) { triton_ret_t tret; + /* not supported yet */ + assert(niid == 0); + /* actual work of truncate; retry if DB deadlock */ for(tret = TRITON_ERR_DEADLOCK; tret == TRITON_ERR_DEADLOCK; ) { @@ -1599,12 +1602,15 @@ __blocking triton_ret_t vosd_get_version(uint128_t oid, uint64_t* version) return(tret); } -__blocking triton_ret_t vosd_create(uint128_t oid) +__blocking triton_ret_t vosd_create(uint128_t oid, uint64_t niid) { triton_ret_t tret; triton_ret_t tret_tmp; struct coalesce_obj co; + /* not supported yet */ + assert(niid == 0); + co.oid = oid; co.flags = COALESCE_DB; start_write(&co); @@ -1860,14 +1866,19 @@ __blocking triton_ret_t vosd_dump(void) } triton_ret_t vosd_txn_open( - uint128_t oid, /**< object to operate on */ - uint64_t oid_fork, /**< fork to operate on */ - uint64_t txn_number /**< caller-assigned txn identifier */ + uint128_t oid, + uint64_t oid_fork, + uint64_t txn_number, + uint64_t niid ) { struct txn_accumulator *txn_acc; + /* not supported yet */ + assert(niid == 0); + txn_acc = malloc(sizeof(*txn_acc)); + if(!txn_acc) { return(TRITON_ERR_NOMEM); @@ -1897,7 +1908,8 @@ static __blocking triton_ret_t vosd_write_internal( int64_t* obj_offsets, int64_t* obj_sizes, int obj_count, - int flags) + int flags, + uint64_t niid) { int done = 0; int mem_index = 0; @@ -1938,7 +1950,7 @@ static __blocking triton_ret_t vosd_write_internal( if(flags & VOSD_FLAG_AUTO_TXN) { - tret = vosd_txn_open(oid, oid_fork, txn_number); + tret = vosd_txn_open(oid, oid_fork, txn_number, niid); if(tret != TRITON_SUCCESS) { free_tmp_listio(); @@ -2099,7 +2111,8 @@ static __blocking triton_ret_t vosd_write_internal( __blocking triton_ret_t vosd_get_size( uint128_t oid, uint64_t fork, - int64_t* size + int64_t* size, + uint64_t niid ) { DB_TXN *txn; @@ -2110,6 +2123,9 @@ __blocking triton_ret_t vosd_get_size( struct logical_map_key lmk; struct logical_map_entry lme; + /* not supported yet */ + assert(niid == 0); + *size = 0; tret = bdb_txn_begin(envp, NULL, &txn, 0); @@ -2223,18 +2239,22 @@ __blocking triton_ret_t vosd_write( int64_t* obj_offsets, int64_t* obj_sizes, int obj_count, - int flags) + int flags, + uint64_t niid) { triton_ret_t tret; triton_ret_t tret_tmp; struct coalesce_obj co; + /* not supported yet */ + assert(niid == 0); + co.oid = oid; co.flags = COALESCE_DB|COALESCE_DATA; start_write(&co); tret = vosd_write_internal(oid, oid_fork, txn_number, mem_offsets, - mem_sizes, mem_count, obj_offsets, obj_sizes, obj_count, flags); + mem_sizes, mem_count, obj_offsets, obj_sizes, obj_count, flags, niid); tret_tmp = end_write(&co); if(tret == TRITON_SUCCESS) @@ -2284,7 +2304,8 @@ __blocking triton_ret_t vosd_read( int64_t* obj_offsets, int64_t* obj_sizes, int obj_count, - int64_t* out_size) + int64_t* out_size, + uint64_t niid) { triton_ret_t tret; int done = 0; @@ -2296,6 +2317,9 @@ __blocking triton_ret_t vosd_read( int64_t* tmp_obj_offsets = NULL; int64_t* tmp_obj_sizes = NULL; + /* not supported yet */ + assert(niid == 0); + *out_size = 0; /* TODO: safety check that total mem size equals total obj size */ @@ -2360,12 +2384,15 @@ __blocking triton_ret_t vosd_read( return(TRITON_SUCCESS); } -__blocking triton_ret_t vosd_remove(uint128_t oid) +__blocking triton_ret_t vosd_remove(uint128_t oid, uint64_t niid) { triton_ret_t tret; triton_ret_t tret_tmp; struct coalesce_obj co; + /* not supported yet */ + assert(niid == 0); + co.oid = oid; co.flags = COALESCE_DB; start_write(&co); diff --git a/code/src/versioned-osd/prototype/versioned-osd.hae b/code/src/versioned-osd/prototype/versioned-osd.hae index fb4ea04..1393e21 100644 --- a/code/src/versioned-osd/prototype/versioned-osd.hae +++ b/code/src/versioned-osd/prototype/versioned-osd.hae @@ -50,7 +50,8 @@ void vosd_finalize(void); * Creates a new object */ __blocking triton_ret_t vosd_create( - uint128_t oid /**< requested identifier */ + uint128_t oid, /**< requested identifier */ + uint64_t niid /**< non-idempotent identifier */ ); @@ -72,9 +73,10 @@ __blocking triton_ret_t vosd_dump(void); * Opens a txn */ triton_ret_t vosd_txn_open( - uint128_t oid, /**< object to operate on */ + uint128_t oid, /**< object to operate on */ uint64_t fork, /**< fork to operate on */ - uint64_t txn_number /**< caller-assigned txn identifier */ + uint64_t txn_number, /**< caller-assigned txn identifier */ + uint64_t niid /**< non-idempotent identifier */ ); /** @@ -83,7 +85,8 @@ triton_ret_t vosd_txn_open( __blocking triton_ret_t vosd_get_size( uint128_t oid, /**< object to operate on */ uint64_t fork, /**< fork identifier */ - int64_t* size /**< logical size of fork */ + int64_t* size, /**< logical size of fork */ + uint64_t niid /**< non-idempotent identifier */ ); /** @@ -99,7 +102,8 @@ __blocking triton_ret_t vosd_write( int64_t* obj_offsets, /**< object region offsets */ int64_t* obj_sizes, /**< object region sizes */ int obj_count, /**< object region count */ - int flags /**< optional flags */ + int flags, /**< optional flags */ + uint64_t niid /**< non-idempotent identifier */ ); /** @@ -123,14 +127,16 @@ __blocking triton_ret_t vosd_read( int64_t* obj_offsets, /**< object region offsets */ int64_t* obj_sizes, /**< object region sizes */ int obj_count, /**< object region count */ - int64_t* out_size /**< amount read */ + int64_t* out_size, /**< amount read */ + uint64_t niid /**< non-idempotent identifier */ ); /** * Removes an existing object */ __blocking triton_ret_t vosd_remove( - uint128_t oid /**< oid to remove */ + uint128_t oid, /**< oid to remove */ + uint64_t niid /**< non-idempotent identifier */ ); /** @@ -139,7 +145,8 @@ __blocking triton_ret_t vosd_remove( __blocking triton_ret_t vosd_truncate( uint128_t oid, /**< object to operate on */ uint64_t fork, /**< object fork to operate on */ - int64_t size /**< size to truncate to (maybe be larger than current size) */ + int64_t size, /**< size to truncate to (maybe be larger than current size) */ + uint64_t niid /**< non-idempotent identifier */ ); #endif /* __VERSIONED_OSD_HAE__ */ hooks/post-receive -- Triton Repository
participants (1)
-
noreply@mcs.anl.gov