Commit afe050e1 authored by Leif Walsh's avatar Leif Walsh Committed by Yoni Fogel

[t:5027] some work on making threaded_stress_test_helpers better for benchmarking

also created perf_insert.tdb


git-svn-id: file:///svn/toku/tokudb@44332 c7de825b-a66e-492c-adef-691d508d4ae1
parent 74c53bbf
...@@ -92,6 +92,7 @@ if(BUILD_TESTING) ...@@ -92,6 +92,7 @@ if(BUILD_TESTING)
mvcc-many-committed.c mvcc-many-committed.c
perf_checkpoint_var.c perf_checkpoint_var.c
perf_cursor_nop.c perf_cursor_nop.c
perf_insert.c
perf_malloc_free.c perf_malloc_free.c
perf_nop.c perf_nop.c
perf_ptquery.c perf_ptquery.c
......
...@@ -123,7 +123,7 @@ static void checkpoint_callback_2(void * extra) { ...@@ -123,7 +123,7 @@ static void checkpoint_callback_2(void * extra) {
// - number of elements // - number of elements
// //
static int checkpoint_var(DB_TXN *txn, ARG arg, void* operation_extra) { static int checkpoint_var(DB_TXN *txn, ARG arg, void* operation_extra, void *UU(stats_extra)) {
int db_index = random()%arg->num_DBs; int db_index = random()%arg->num_DBs;
int r = 0; int r = 0;
int val_size = *(int *)operation_extra; int val_size = *(int *)operation_extra;
......
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
// vim: expandtab:ts=8:sw=4:softtabstop=4:
#ident "Copyright (c) 2007-2012 Tokutek Inc. All rights reserved."
#ident "$Id$"
#include "test.h"
#include <stdio.h>
#include <stdlib.h>
#include <toku_pthread.h>
#include <unistd.h>
#include <memory.h>
#include <sys/stat.h>
#include <db.h>
#include "threaded_stress_test_helpers.h"
// The intent of this test is to measure the throughput of db->puts
// with multiple threads.
static void
stress_table(DB_ENV* env, DB** dbp, struct cli_args *cli_args) {
int n = cli_args->num_elements;
if (verbose) printf("starting creation of pthreads\n");
const int num_threads = cli_args->num_put_threads;
struct arg myargs[num_threads];
for (int i = 0; i < num_threads; i++) {
arg_init(&myargs[i], n, dbp, env, cli_args);
}
for (int i = 0; i < num_threads; i++) {
myargs[i].operation = random_put_op;
}
run_workers(myargs, num_threads, cli_args->time_of_test, false, cli_args);
}
int
test_main(int argc, char *const argv[]) {
struct cli_args args = get_default_args_for_perf();
parse_stress_test_args(argc, argv, &args);
stress_test_main(&args);
return 0;
}
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include "threaded_stress_test_helpers.h" #include "threaded_stress_test_helpers.h"
static int ptquery_op2(DB_TXN *txn, ARG arg, void* operation_extra) { static int ptquery_op2(DB_TXN *txn, ARG arg, void* operation_extra, void *UU(stats_extra)) {
int db_index = *(int *)operation_extra; int db_index = *(int *)operation_extra;
DB* db = arg->dbp[db_index]; DB* db = arg->dbp[db_index];
return ptquery_and_maybe_check_op(db, txn, arg, TRUE); return ptquery_and_maybe_check_op(db, txn, arg, TRUE);
......
...@@ -55,7 +55,7 @@ static void checkpoint_callback2(void* UU(extra)) { ...@@ -55,7 +55,7 @@ static void checkpoint_callback2(void* UU(extra)) {
} }
} }
static int manual_checkpoint(DB_TXN *UU(txn), ARG UU(arg), void* operation_extra) { static int manual_checkpoint(DB_TXN *UU(txn), ARG UU(arg), void* operation_extra, void *UU(stats_extra)) {
DB_ENV* env = operation_extra; DB_ENV* env = operation_extra;
int r = env->txn_checkpoint(env,0,0,0); int r = env->txn_checkpoint(env,0,0,0);
assert_zero(r); assert_zero(r);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
// The intent of this test is to measure create and abort transactions // The intent of this test is to measure create and abort transactions
// with garbage collection verification on // with garbage collection verification on
static int random_sleep(DB_TXN* UU(txn), ARG UU(arg), void* UU(operation_extra)) { static int random_sleep(DB_TXN* UU(txn), ARG UU(arg), void* UU(operation_extra), void *UU(stats_extra)) {
usleep(random()%2000); usleep(random()%2000);
return 0; return 0;
} }
......
This diff is collapsed.
...@@ -70,6 +70,11 @@ size_t toku_malloc_usable_size(void *p) __attribute__((__visibility__("default") ...@@ -70,6 +70,11 @@ size_t toku_malloc_usable_size(void *p) __attribute__((__visibility__("default")
#define XCALLOC(v) XCALLOC_N(1,(v)) #define XCALLOC(v) XCALLOC_N(1,(v))
#define XREALLOC_N(n,v) v = cast_to_typeof(v) toku_xrealloc(v, (n)*sizeof(*v)) #define XREALLOC_N(n,v) v = cast_to_typeof(v) toku_xrealloc(v, (n)*sizeof(*v))
// ZERO_ARRAY writes zeroes to a stack-allocated array
#define ZERO_ARRAY(o) do { memset((o), 0, sizeof (o)); } while (0)
// ZERO_STRUCT writes zeroes to a stack-allocated struct
#define ZERO_STRUCT(o) do { memset(&(o), 0, sizeof (o)); } while (0)
/* Copy memory. Analogous to strdup() */ /* Copy memory. Analogous to strdup() */
void *toku_memdup (const void *v, size_t len); void *toku_memdup (const void *v, size_t len);
/* Toku-version of strdup. Use this so that it calls toku_malloc() */ /* Toku-version of strdup. Use this so that it calls toku_malloc() */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment