Exemplo n.º 1
0
static void test_read(LSMDB_env *const env) {
	LSMDB_txn *txn;
	chk( lsmdb_txn_begin(env, NULL, MDB_RDONLY, &txn) );
	LSMDB_cursor *cursor;
	chk( lsmdb_cursor_open(txn, &cursor) );

	for(int i = 0; i < WRITES; ++i) {
		MDB_val key, data;
		chk( lsmdb_cursor_next(cursor, &key, &data, +1) );

		assert(KEY_SIZE == key.mv_size);
		chkkey(key.mv_data);
		assert(DATA_SIZE == data.mv_size);
	}

	lsmdb_txn_abort(txn);
}
Exemplo n.º 2
0
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);
	}
}
Exemplo n.º 3
0
int db_txn_begin(DB_env *const env, DB_txn *const parent, unsigned const flags, DB_txn **const out) {
	return mdberr(lsmdb_txn_begin((LSMDB_env *)env, (LSMDB_txn *)parent, flags, (LSMDB_txn **)out));
}