int db_txn_commit(DB_txn *const txn) { int rc = mdberr(lsmdb_autocompact((LSMDB_txn *)txn)); if(rc < 0) { lsmdb_txn_abort((LSMDB_txn *)txn); return rc; } return mdberr(lsmdb_txn_commit((LSMDB_txn *)txn)); }
static void test_write(LSMDB_env *const env) { uint8_t k[KEY_SIZE]; uint8_t d[DATA_SIZE] = {}; for(int i = 0; i < WRITES / TXN_SIZE; ++i) { LSMDB_txn *txn; chk( lsmdb_txn_begin(env, NULL, MDB_RDWR, &txn) ); for(int j = 0; j < TXN_SIZE; ++j) { GENKEY(k); MDB_val key = { sizeof(k), &k }; MDB_val data = { sizeof(d), &d }; chk( lsmdb_put(txn, &key, &data, PUT_FLAGS) ); } chk( lsmdb_autocompact(txn) ); lsmdb_txn_commit(txn); } }