Skip to content

Commit f02cd71

Browse files
committed
Allow unique to be skew_order
And allow for change of value size. clinicals documents ar enot base don internalID, and so will be in a random order
1 parent 1444e6e commit f02cd71

2 files changed

Lines changed: 21 additions & 10 deletions

File tree

examples/riakc_nhs_clinicals.config

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@
1414

1515
%% For alwaysget operations what is:
1616
%% - the maximum number of keys per worker (max number of keys = this * concurrent)
17-
%% - whether the inserts should be in key_order, or whether the order should be skewed by a 1 byte hash at the head of the key
18-
{alwaysget, {400000, 50000, skew_order}}.
17+
%% - whether the inserts should be in key_order
18+
{alwaysget, {300000, 120000, skew_order}}.
19+
{unique, {7000, skew_order}}.
1920

2021
{pb_ips, [{127,0,0,1}]}.
2122
{http_ips, [{127,0,0,1}]}.

src/basho_bench_driver_nhs.erl

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,10 @@
4040
http_timeout,
4141
fold_timeout,
4242
alwaysget_perworker_maxkeycount = 1 :: integer(),
43-
alwayshet_perworker_minkeycount = 1 :: integer(),
44-
alwaysget_keyorder = key_order :: key_order|skew_order,
43+
alwaysget_perworker_minkeycount = 1 :: integer(),
44+
alwaysget_keyorder :: key_order|skew_order,
45+
unique_size :: integer(),
46+
unique_keyorder :: key_order|skew_order,
4547
postcodeq_count = 0 :: integer(),
4648
postcodeq_sum = 0 :: integer(),
4749
dobq_count = 0 :: integer(),
@@ -121,6 +123,8 @@ new(Id) ->
121123

122124
{AGMaxKC, AGMinKC, AGKeyOrder} =
123125
basho_bench_config:get(alwaysget, {1, 1, key_order}),
126+
{DocSize, DocKeyOrder} =
127+
basho_bench_config:get(unique, {8000, key_order}),
124128

125129
case riakc_pb_socket:start_link(PBTargetIp, PBTargetPort) of
126130
{ok, Pid} ->
@@ -139,8 +143,10 @@ new(Id) ->
139143
unique_key_count = 1,
140144
alwaysget_key_count = 0,
141145
alwaysget_perworker_maxkeycount = AGMaxKC,
142-
alwayshet_perworker_minkeycount = AGMinKC,
143-
alwaysget_keyorder = AGKeyOrder
146+
alwaysget_perworker_minkeycount = AGMinKC,
147+
alwaysget_keyorder = AGKeyOrder,
148+
unique_size = DocSize,
149+
unique_keyorder = DocKeyOrder
144150
}};
145151
{error, Reason2} ->
146152
?FAIL_MSG("Failed to connect riakc_pb_socket to ~p port ~p: ~p\n",
@@ -166,7 +172,7 @@ run(alwaysget_pb, _KeyGen, _ValueGen, State) ->
166172
Pid = State#state.pb_pid,
167173
Bucket = State#state.recordBucket,
168174
AGKC = State#state.alwaysget_key_count,
169-
case AGKC > State#state.alwayshet_perworker_minkeycount of
175+
case AGKC > State#state.alwaysget_perworker_minkeycount of
170176
true ->
171177

172178
KeyInt = eightytwenty_keycount(AGKC),
@@ -275,8 +281,12 @@ run(put_unique, _KeyGen, _ValueGen, State) ->
275281
Bucket = State#state.documentBucket,
276282

277283
UKC = State#state.unique_key_count,
278-
Key = generate_uniquekey(UKC, State#state.rand_keyid, key_order),
279-
Value = non_compressible_value(8000),
284+
Key =
285+
generate_uniquekey(UKC,
286+
State#state.rand_keyid,
287+
State#state.unique_keyorder),
288+
289+
Value = non_compressible_value(State#state.unique_size),
280290

281291
Robj0 = riakc_obj:new(Bucket, to_binary(Key)),
282292
MD1 = riakc_obj:get_update_metadata(Robj0),
@@ -298,7 +308,7 @@ run(get_unique, _KeyGen, _ValueGen, State) ->
298308
UKC = State#state.unique_key_count,
299309
Key = generate_uniquekey(random:uniform(UKC),
300310
State#state.rand_keyid,
301-
key_order),
311+
State#state.unique_keyorder),
302312
case riakc_pb_socket:get(Pid, Bucket, Key, State#state.pb_timeout) of
303313
{ok, _Obj} ->
304314
{ok, State};

0 commit comments

Comments
 (0)