%%-*- mode: erlang -*- %% ex: ft=erlang ts=4 sw=4 et %% How to: %% * put the wterl-b_b.config file into basho_bench/examples %% * put the basho_bench_driver_wterl.erl into basho_bench/src %% * make clean in basho_bench, then make %% * edit examples/wterl-b_b.config %% - change {code_paths, ["../wterl"]}. to be a relative path to your %% wterl directory %% - change {wterl_dir, "/home/gburd/ws/basho_bench/data"}. to a fully %% qualified location for your test data files (mkdir that directory %% yourself, if it doesn't exist the test will fail 'enoent') %% * to run, replace this path with the proper path on your system: %% LD_LIBRARY_PATH=/home/you/wterl/priv ./basho_bench examples/wterl-b_b.config %% * the test should run for 10 minutes (as it is configured right now) %% with 4 concurrent workers accessing the same table %% %% Note: %% There are two config sections in wt.config {wterl, [ ... ]}. and %% {wterl_, [ ... ]}. The one being used is named "wterl" the other %% config is ignored. I setup an LSM and BTREE config and to choose %% which is run you just rename those two sections (turn one off by %% adding a "_" to the name and take the "_" out of the other's name). {mode, max}. {duration, 10}. {concurrent, 4}. {driver, basho_bench_driver_wterl}. {key_generator, {int_to_bin_littleendian,{uniform_int, 5000000}}}. {value_generator, {fixed_bin, 10000}}. {operations, [{get, 4}, {put, 4}, {delete, 2}]}. {code_paths, ["../wterl"]}. {wterl_dir, "/home/gburd/ws/basho_bench/data"}. %% lsm {wterl, [ {connection, [ {create, true}, {sync, false}, {logging, true}, {transactional, true}, {session_max, 1024}, {cache_size, 4294967296}, {verbose, []}, % "salvage", "verify" are okay, however... % for some unknown reason, if you add these additional % verbose flags Erlang SEGV's "size_object: bad tag for 0x80" % no idea why... yet... you've been warned. %"block", "shared_cache", "reconcile", "evict", "lsm", %"fileops", "read", "write", "readserver", "evictserver", %"hazard", "mutex", "ckpt" {statistics_log, [{wait, 30}]} ]}, {session, [ {isolation, "snapshot"} ]}, {table_uri, "lsm:test"}, {table, [ {internal_page_max, "128K"}, {leaf_page_max, "128K"}, {lsm_chunk_size, "25MB"}, {prefix_compression, false}, {lsm_bloom_newest, true}, {lsm_bloom_oldest, true} , {lsm_bloom_bit_count, 128}, {lsm_bloom_hash_count, 64}, {lsm_bloom_config, [{leaf_page_max, "8MB"}]}, {block_compressor, "snappy"} % bzip2 ]} ]}. %% btree {wterl_, [ {connection, [ {create, true}, {sync, false}, {logging, true}, {transactional, true}, {session_max, 1024}, {cache_size, 4294967296}, {verbose, []}, % "salvage", "verify" are okay, however... % for some unknown reason, if you add these additional % verbose flags Erlang SEGV's "size_object: bad tag for 0x80" % no idea why... yet... you've been warned. %"block", "shared_cache", "reconcile", "evict", "lsm", %"fileops", "read", "write", "readserver", "evictserver", %"hazard", "mutex", "ckpt" {statistics_log, [{wait, 30}]}, {checkpoint, [{await, 10}]} ]}, {session, [ {isolation, "snapshot"} ]}, {table_uri, "table:test"}, {table, [ {prefix_compression, false}, {block_compressor, "snappy"} % bzip2 ]} ]}.