/* * __wt_txn_rollback_to_stable -- * Rollback all in-memory state related to timestamps more recent than * the passed in timestamp. */ int __wt_txn_rollback_to_stable(WT_SESSION_IMPL *session, const char *cfg[]) { #ifndef HAVE_TIMESTAMPS WT_UNUSED(cfg); WT_RET_MSG(session, EINVAL, "rollback_to_stable " "requires a version of WiredTiger built with timestamp " "support"); #else WT_CONNECTION_IMPL *conn; WT_DECL_RET; conn = S2C(session); WT_RET(__txn_rollback_to_stable_check(session)); /* Allocate a non-durable btree bitstring */ WT_RET(__bit_alloc(session, conn->next_file_id, &conn->stable_rollback_bitstring)); WT_ERR(__wt_conn_btree_apply(session, NULL, __txn_rollback_to_stable_btree, NULL, cfg)); /* * Clear any offending content from the lookaside file. This must be * done after the in-memory application, since the process of walking * trees in cache populates a list that is used to check which * lookaside records should be removed. */ WT_ERR(__txn_rollback_to_stable_lookaside_fixup(session)); err: __wt_free(session, conn->stable_rollback_bitstring); return (ret); #endif }
/* * __wt_bloom_create -- * * Creates and configures a WT_BLOOM handle, allocates a bitstring in memory to * use while populating the bloom filter. * * count - is the expected number of inserted items * factor - is the number of bits to use per inserted item * k - is the number of hash values to set or test per item */ int __wt_bloom_create( WT_SESSION_IMPL *session, const char *uri, const char *config, uint64_t count, uint32_t factor, uint32_t k, WT_BLOOM **bloomp) { WT_BLOOM *bloom; WT_RET(__bloom_init(session, uri, config, &bloom)); WT_RET(__bloom_setup(bloom, count, 0, factor, k)); WT_RET(__bit_alloc(session, bloom->m, &bloom->bitstring)); *bloomp = bloom; return (0); }
* factor - is the number of bits to use per inserted item * k - is the number of hash values to set or test per item */ int __wt_bloom_create( WT_SESSION_IMPL *session, const char *uri, const char *config, uint64_t count, uint32_t factor, uint32_t k, WT_BLOOM **bloomp) WT_GCC_FUNC_ATTRIBUTE((visibility("default"))) { WT_BLOOM *bloom; WT_DECL_RET; WT_RET(__bloom_init(session, uri, config, &bloom)); WT_ERR(__bloom_setup(bloom, count, 0, factor, k)); WT_ERR(__bit_alloc(session, bloom->m, &bloom->bitstring)); *bloomp = bloom; return (0); err: WT_TRET(__wt_bloom_close(bloom)); return (ret); } /* * __bloom_open_cursor -- * Open a cursor to read from a Bloom filter. */ static int __bloom_open_cursor(WT_BLOOM *bloom, WT_CURSOR *owner) {