1. Basho
  2. Untitled project
  3. basho_bench

Source

basho_bench / examples / hibari.config

The default branch has multiple heads

%% -*- mode: erlang -*-

{mode, max}.
%% Remember: actual rate = mode rate (below) * concurrent (below)
%%
%% SLF: Hrm, this doesn't seem to play very well with Hibari client
%% protocol timeouts??  Or I just need to experiment more with
%% changing both the per-generator rate and the # of concurrent
%% generators?
%{mode, {rate, 8}}.

{duration, 15}.                                   % 1 minute is very short

{concurrent, 100}.                                % 5 is low for Hibari

{driver, basho_bench_driver_hibari}.

{code_paths, [
              %% If you have the Hibari source distribution pulled
              %% from SourceForge and compiled, then change the prefix
              %% for these paths from "/User/fritchie/src/hibari" to
              %% the top of your Hibari source.

              "/Users/fritchie/src/hibari/src/erl-apps/cluster-info__HEAD/ebin",
              "/Users/fritchie/src/hibari/src/erl-apps/gdss__HEAD/ebin",
              "/Users/fritchie/src/hibari/src/erl-apps/gmt-util__HEAD/ebin",
              "/Users/fritchie/src/hibari/src/erl-apps/gdss-ubf-proto__HEAD/ebin",
              "/Users/fritchie/src/hibari/src/erl-third-party/mochiweb__HEAD/ebin",
              "/Users/fritchie/src/hibari/src/erl-tools/ubf-jsonrpc__HEAD/ebin",
              "/Users/fritchie/src/hibari/src/erl-tools/ubf-thrift__HEAD/ebin",
              "/Users/fritchie/src/hibari/src/erl-tools/ubf__HEAD/ebin"
             ]}.

{key_generator, {int_to_bin, {uniform_int, 99000}}}.

{value_generator, {fixed_bin, 1000}}.
%{value_generator, {fixed_bin, 10000}}.

%% Default is [{get,4}, {put,4}, {delete, 1}] which means that out of
%% every 9 operations, 'get' will be called four times, 'put' will
%% called four times, and 'delete' will be called once, on average.

{operations, [{get,4}, {put,4}, {delete, 1}]}.

%% hibari_table
%%
%% Name of the Hibari table to operate on.  Must be an atom.

{hibari_table, tab1}.
%{hibari_table, tab1_nosync}.

%% hibari_client_type
%%
%% Type of Hibari client: native, ubf, ebf, jsf, tbf, json_rpc
%% Uncomment only one of the pairs below.
%%
%% hibari_server_tcp_port
%%
%% For use with all Hibari clients other than the native Erlang client.
%% (This attribute is ignored by the native Erlang client.)
%%
%% TCP port number for the target server.  Default port numbers:
%%
%%    EBF        7580
%%    UBF        7581
%%    JSF        7582
%%    TBF        7599
%%
%% hibari_server_service: undefined, gdss, gdss_stub
%%
%% For use with all Hibari clients other than the native Erlang client.
%% (This attribute is ignored by the native Erlang client.)
%%
%% UBF service for the target server.  The service "gdss" is the
%% default service.  The service "gdss_stub" can be used to measure
%% the latency (and throughput) of the UBF rpc transport.
%%

%{hibari_client_type, native}.
%{hibari_server_tcp_port, -1}.           % Value is unused but must be present
%{hibari_server_service, undefined}.     % Value is unused but must be present

{hibari_client_type, ebf}.
{hibari_server_tcp_port, 7580}.
{hibari_server_service, gdss}.
%{hibari_server_service, gdss_stub}.

%{hibari_client_type, ubf}.
%{hibari_server_tcp_port, 7581}.
%{hibari_server_service, gdss}.
%{hibari_server_service, gdss_stub}.

%% TODO: Hibari's JSF support is broken right now, but I'm not sure?
%{hibari_client_type, jsf}.
%{hibari_server_tcp_port, 7582}.
%{hibari_server_service, gdss}.
%{hibari_server_service, gdss_stub}.

%{hibari_client_type, tbf}.
%{hibari_server_tcp_port, 7599}.
%{hibari_server_service, gdss}.
%{hibari_server_service, gdss_stub}.

%% TODO: SLF: Untested!  Try testing against bb2e?
%{hibari_client_type, json_rpc}.
%{hibari_server_tcp_port, 22982377582}.
%{hibari_server_service, gdss}.
%{hibari_server_service, gdss_stub}.

%% hibari_servers
%%
%% For use with all Hibari clients other than the native Erlang
%% client.  (This attribute is ignored by the native Erlang client.)
%%
%% Each concurrent load generator will use one server from this list.
%% The assignment is made at plugin initialization time and will not
%% change for the life of the load generator process.
%%
%% This list should include all Hibari servers in the cluster.  The
%% list may contain valid DNS hostnames and/or IP addresses, both as
%% Erlang strings.  (Don't forget commas between each machine, and
%% don't put a comma after the last item in the list.)

{hibari_servers, [
                  "localhost"
                 ]}.

%% hibari_native_1node
%%
%% For the Erlang native client, we need the name of a single Erlang
%% node in the Hibari cluster.  After we connect to that node, we'll
%% automatically become aware of all other nodes in the cluster.

{hibari_native_1node, 'gdss1@localhost'}.

%% hibari_native_my_sname
%%
%% For the Erlang native client, this is the name of the basho_bench
%% node.  Before running the test, it is recommended to register this
%% native Erlang client's nodename for monitoring by the Hibari admin
%% server.  Please click on the "Add/Delete a client node monitor."
%% link of the Hibari admin server's webpage for further information.

{hibari_native_my_sname, 'basho_bench'}.

%% hibari_native_ticktime
%%
%% For the Erlang native client, this value must match the value of
%% 'cluster_timeout' in Hibari's "etc/central.conf" file.  The default
%% is 20.

{hibari_native_ticktime, 20}.

%% hibari_native_cookie
%%
%% For the Erlang native client, this value specifies the "cookie"
%% used by the Hibari server cluster.  See ~hibariuser/.erlang.cookie
%% on one of the Hibari server nodes.  The cookie must be an atom, so
%% be sure to use single quotes.

{hibari_native_cookie, 'SKHZSZEOIVIYDXBZQHOB'}.