Skip to content

Commit e2aa693

Browse files
Added ETS driver and config.
1 parent 1c2adc0 commit e2aa693

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

examples/basho_bench_ets.config

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{mode, max}.
2+
3+
{duration, 3}.
4+
5+
{concurrent, 4}.
6+
7+
{driver, basho_bench_driver_ets}.
8+
9+
{operations, [{get,1}, {put,1}]}.
10+
11+
{key_generator, {int_to_bin_littleendian, {uniform_int, 1000}}}.
12+
13+
{value_generator, {fixed_bin, 100000}}.
14+

src/basho_bench_driver_ets.erl

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
-module(basho_bench_driver_ets).
2+
3+
-export([new/1,
4+
run/4]).
5+
6+
new(_Id) ->
7+
EtsTable = ets:new(basho_bench, [ordered_set]),
8+
{ok, EtsTable}.
9+
10+
run(get, KeyGen, _ValueGen, EtsTable) ->
11+
Start = KeyGen(),
12+
case ets:lookup(EtsTable, Start) of
13+
[] ->
14+
{ok, EtsTable};
15+
[{_Key, _Val}] ->
16+
{ok, EtsTable};
17+
Error ->
18+
{error, Error, EtsTable}
19+
end;
20+
21+
run(put, KeyGen, ValueGen, EtsTable) ->
22+
Object = {KeyGen(), ValueGen()},
23+
ets:insert(EtsTable, Object),
24+
{ok, EtsTable};
25+
26+
run(delete, KeyGen, _ValueGen, EtsTable) ->
27+
Start = KeyGen(),
28+
ets:delete(EtsTable, Start),
29+
{ok, EtsTable}.
30+

0 commit comments

Comments
 (0)