Triton Repository branch, master, updated. b4689cf8ef6b98afba0cab6afa86bf51679f981d
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 b4689cf8ef6b98afba0cab6afa86bf51679f981d (commit) via 52a1a27a502c573e2170b2d7aa1cadf18d1532a5 (commit) via 3265e018633ebc909240373de7602cecc98f3d14 (commit) via 6fc4b60c92aed47b0f8da0013403ffbc53c10d21 (commit) via c0b612d0f6d24bb30c7eb79c82fa4e6ed2bb28ba (commit) from 967ecd50221f0e1ae5febcc171c47c82a6761b41 (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 b4689cf8ef6b98afba0cab6afa86bf51679f981d Author: Justin Wozniak <[email protected]> Date: Mon Jun 6 16:18:09 2011 -0500 Skip cursor ahead to first valid oid commit 52a1a27a502c573e2170b2d7aa1cadf18d1532a5 Author: Justin Wozniak <[email protected]> Date: Mon Jun 6 15:55:41 2011 -0500 Remove redundant notes commit 3265e018633ebc909240373de7602cecc98f3d14 Author: Justin Wozniak <[email protected]> Date: Mon Jun 6 15:54:56 2011 -0500 Cleanups commit 6fc4b60c92aed47b0f8da0013403ffbc53c10d21 Author: Justin Wozniak <[email protected]> Date: Mon Jun 6 15:34:23 2011 -0500 goto-free loop logic commit c0b612d0f6d24bb30c7eb79c82fa4e6ed2bb28ba Author: Justin Wozniak <[email protected]> Date: Mon Jun 6 15:17:02 2011 -0500 Cut out unused DB operations in vosd_range() ----------------------------------------------------------------------- Summary of changes: code/src/versioned-osd/prototype/versioned-osd.ae | 170 ++++----------------- 1 files changed, 28 insertions(+), 142 deletions(-) Diff of changes: diff --git a/code/src/versioned-osd/prototype/versioned-osd.ae b/code/src/versioned-osd/prototype/versioned-osd.ae index e621652..cd314ea 100644 --- a/code/src/versioned-osd/prototype/versioned-osd.ae +++ b/code/src/versioned-osd/prototype/versioned-osd.ae @@ -2224,36 +2224,24 @@ __blocking triton_ret_t vosd_range(int count, triton_ret_t tret; triton_ret_t tret_tmp; DB_TXN *txn; - DBC *log_map_dbcp, *missing_ver_dbcp, *ver_dbcp, *niid_dbcp; - DBT log_map_key, missing_ver_key, ver_key, nd_key; - DBT log_map_value, missing_ver_value, ver_value, nd_value; + DBC *ver_dbcp; + DBT ver_key; + DBT ver_value; int c_get_flag = DB_SET_RANGE; - char oid_str[TRITON_UINT128_STRLEN]; - struct niid_key nkey; - struct niid_value nvalue; - struct logical_map_key lmk; - struct missing_version mvk; - uint128_t vk = triton_uint128_from_uint64(0); - struct logical_map_entry lmv; + uint128_t vk = lower; uint64_t vv; int current; - int pointer; + int index; VOSD_CHECK(); /* keys for each db */ - VOSD_INIT_DBT(log_map_key, lmk); - VOSD_INIT_DBT(missing_ver_key, mvk); VOSD_INIT_DBT(ver_key, vk); - VOSD_INIT_DBT(nd_key, nkey); /* values for each db */ - VOSD_INIT_DBT(log_map_value, lmv); - VOSD_INIT_DBT_EMPTY(missing_ver_value); VOSD_INIT_DBT(ver_value, vv); - VOSD_INIT_DBT(nd_value, nvalue); /* NOTE: We do not attempt to retry here if a deadlock is encountered. * This function should only be called when VOSD is in a quiescent @@ -2267,161 +2255,59 @@ __blocking triton_ret_t vosd_range(int count, return(tret); } - /* create cursors on all 3 dbs */ - tret = bdb_cursor(log_map_dbp, txn, &log_map_dbcp, 0); - if(tret != TRITON_SUCCESS) - { - printf(" *** INCOMPLETE: error opening cursor.\n"); - tret_tmp = throttle_bdb_txn_abort(txn); - triton_error_destroy(tret_tmp); - return(tret); - } tret = bdb_cursor(ver_dbp, txn, &ver_dbcp, 0); if(tret != TRITON_SUCCESS) { printf(" *** INCOMPLETE: error opening cursor.\n"); - tret_tmp = bdb_cursor_close(log_map_dbcp); - triton_error_destroy(tret_tmp); - tret_tmp = throttle_bdb_txn_abort(txn); - triton_error_destroy(tret_tmp); - return(tret); - } - tret = bdb_cursor(missing_ver_dbp, txn, &missing_ver_dbcp, 0); - if(tret != TRITON_SUCCESS) - { - printf(" *** INCOMPLETE: error opening cursor.\n"); - tret_tmp = bdb_cursor_close(ver_dbcp); - triton_error_destroy(tret_tmp); - tret_tmp = bdb_cursor_close(log_map_dbcp); - triton_error_destroy(tret_tmp); tret_tmp = throttle_bdb_txn_abort(txn); triton_error_destroy(tret_tmp); return(tret); } /* loop through version db, one entry per object */ - tret = bdb_cursor_get(ver_dbcp, &ver_key, &ver_value, DB_NEXT); + tret = bdb_cursor_get(ver_dbcp, &ver_key, &ver_value, DB_SET_RANGE); /* loop counter */ current = 0; /* offset into output oids */ - pointer = 0; + index = 0; while (tret == TRITON_SUCCESS) { - if (triton_cmp_uint128(vk, lower) == -1 || - triton_cmp_uint128(vk, upper) == 1) - goto next; - if (current < offset) - goto skip; - if (pointer >= count) - break; - - oids[pointer] = vk; - - pointer++; - - triton_uint128_to_string(oid_str, TRITON_UINT128_STRLEN, vk); - - /* search for any missing versions */ - mvk.oid = vk; - mvk.version = 0; - c_get_flag = DB_SET_RANGE; - tret = bdb_cursor_get(missing_ver_dbcp, - &missing_ver_key, &missing_ver_value, c_get_flag); - while(tret == TRITON_SUCCESS) - { - c_get_flag = DB_NEXT; - tret = bdb_cursor_get(missing_ver_dbcp, - &missing_ver_key, &missing_ver_value, c_get_flag); - } - if(tret != TRITON_ERR_NOENT) - { - printf(" *** INCOMPLETE: error getting missing versions.\n"); - tret_tmp = bdb_cursor_close(ver_dbcp); - triton_error_destroy(tret_tmp); - tret_tmp = bdb_cursor_close(log_map_dbcp); - triton_error_destroy(tret_tmp); - tret_tmp = bdb_cursor_close(missing_ver_dbcp); - triton_error_destroy(tret_tmp); - tret_tmp = throttle_bdb_txn_abort(txn); - triton_error_destroy(tret_tmp); - return(tret); - } triton_error_destroy(tret); - /* search for logical map entries */ - lmk.oid = vk; - lmk.oid_fork = 0; - lmk.logical_offset_end = 0; - c_get_flag = DB_SET_RANGE; - tret = bdb_cursor_get(log_map_dbcp, &log_map_key, - &log_map_value, c_get_flag); - while(tret == TRITON_SUCCESS && triton_cmp_uint128(lmk.oid, vk) == 0) - { - printf("fork: %llu, logical_off: %lld, logical_end: %lld, size: %lld, log_off: %lld, ver: %llu\n", - llu(lmk.oid_fork), - lld(lmv.logical_offset), lld(lmv.logical_offset_end), - lld(lmv.size), lld(lmv.log_offset), llu(lmv.version)); - c_get_flag = DB_NEXT; - tret = bdb_cursor_get(log_map_dbcp, &log_map_key, - &log_map_value, c_get_flag); - } - if(tret != TRITON_SUCCESS && tret != TRITON_ERR_NOENT) + if (index >= count) + break; + + if (triton_cmp_uint128(vk, lower) != -1 && + triton_cmp_uint128(vk, upper) != 1) { - printf(" *** INCOMPLETE: error getting missing versions.\n"); - tret = bdb_cursor_close(ver_dbcp); - triton_error_destroy(tret_tmp); - tret = bdb_cursor_close(log_map_dbcp); - triton_error_destroy(tret_tmp); - tret = bdb_cursor_close(missing_ver_dbcp); - triton_error_destroy(tret_tmp); - tret = throttle_bdb_txn_abort(txn); - triton_error_destroy(tret_tmp); - return(tret); + if (current >= offset) + { + oids[index] = vk; + index++; + } + current++; } - triton_error_destroy(tret); - - skip: - current++; - next: tret = bdb_cursor_get(ver_dbcp, &ver_key, &ver_value, DB_NEXT); } - if (tret != TRITON_SUCCESS) - triton_error_destroy(tret); + if (tret != TRITON_SUCCESS && + tret != TRITON_ERR_NOENT) + { + triton_error_print(tret, "vosd_range(): "); + return(tret); + } - tret = bdb_cursor_close(log_map_dbcp); triton_error_destroy(tret); + tret = bdb_cursor_close(ver_dbcp); + triton_error_assert(tret); triton_error_destroy(tret); - tret = bdb_cursor_close(missing_ver_dbcp); - triton_error_destroy(tret); - - /* dump niid database all at once*/ - tret = bdb_cursor(niid_dbp, txn, &niid_dbcp, 0); - if(tret != TRITON_SUCCESS) - { - printf(" *** INCOMPLETE: error opening cursor.\n"); - tret_tmp = throttle_bdb_txn_abort(txn); - triton_error_destroy(tret_tmp); - return(tret); - } - nkey.oid = triton_uint128_from_uint64(0); - nkey.niid = 0; - nkey.op_type = 0; - tret = bdb_cursor_get(niid_dbcp, &nd_key, &nd_value, DB_NEXT); - while (tret == TRITON_SUCCESS) - { - triton_uint128_to_string(oid_str, TRITON_UINT128_STRLEN, nkey.oid); - printf("OID: %s, NIID: %llu, op_type: %d, timestamp: %lld\n", oid_str, - llu(nkey.niid), nkey.op_type, lld(nvalue.timestamp)); - tret = bdb_cursor_get(niid_dbcp, &nd_key, &nd_value, DB_NEXT); - } - tret = bdb_cursor_close(niid_dbcp); tret = throttle_bdb_txn_commit(txn, 0); + triton_error_assert(tret); triton_error_destroy(tret); - *result = pointer; + *result = index; return(TRITON_SUCCESS); } hooks/post-receive -- Triton Repository
participants (1)
-
noreply@mcs.anl.gov