|
%% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- |
|
%% ex: ft=erlang ts=4 sw=4 et |
|
[ |
|
%% Riak Core config |
|
{riak_core, [ |
|
%% Default location of ringstate |
|
{ring_state_dir, "./data/ring"}, |
|
|
|
%% http is a list of IP addresses and TCP ports that the Riak |
|
%% HTTP interface will bind. |
|
{http, [ {"0.0.0.0", 8098 } ]}, |
|
|
|
%% https is a list of IP addresses and TCP ports that the Riak |
|
%% HTTPS interface will bind. |
|
%{https, [{ "0.0.0.0", 8098 }]}, |
|
|
|
%% Default cert and key locations for https can be overridden |
|
%% with the ssl config variable, for example: |
|
%{ssl, [ |
|
% {certfile, "./etc/cert.pem"}, |
|
% {keyfile, "./etc/key.pem"} |
|
% ]}, |
|
|
|
%% riak_handoff_port is the TCP port that Riak uses for |
|
%% intra-cluster data handoff. |
|
{handoff_port, 8099 }, |
|
|
|
%% To encrypt riak_core intra-cluster data handoff traffic, |
|
%% uncomment the following line and edit its path to an |
|
%% appropriate certfile and keyfile. (This example uses a |
|
%% single file with both items concatenated together.) |
|
%{handoff_ssl_options, [{certfile, "/tmp/erlserver.pem"}]}, |
|
|
|
%% Platform-specific installation paths (substituted by rebar) |
|
{platform_bin_dir, "./bin"}, |
|
{platform_data_dir, "./data"}, |
|
{platform_etc_dir, "./etc"}, |
|
{platform_lib_dir, "./lib"}, |
|
{platform_log_dir, "./log"} |
|
]}, |
|
|
|
%% Riak KV config |
|
{riak_kv, [ |
|
%% Storage_backend specifies the Erlang module defining the storage |
|
%% mechanism that will be used on this node. |
|
{storage_backend, riak_kv_bitcask_backend}, |
|
|
|
%% pb_ip is the IP address that the Riak Protocol Buffers interface |
|
%% will bind to. If this is undefined, the interface will not run. |
|
{pb_ip, "0.0.0.0" }, |
|
|
|
%% pb_port is the TCP port that the Riak Protocol Buffers interface |
|
%% will bind to |
|
{pb_port, 8087 }, |
|
|
|
%% pb_backlog is the maximum length to which the queue of pending |
|
%% connections may grow. If set, it must be an integer >= 0. |
|
%% By default the value is 5. If you anticipate a huge number of |
|
%% connections being initialised *simultaneously*, set this number |
|
%% higher. |
|
%% {pb_backlog, 64}, |
|
|
|
%% raw_name is the first part of all URLS used by the Riak raw HTTP |
|
%% interface. See riak_web.erl and raw_http_resource.erl for |
|
%% details. |
|
%{raw_name, "riak"}, |
|
|
|
%% mapred_name is URL used to submit map/reduce requests to Riak. |
|
{mapred_name, "mapred"}, |
|
|
|
%% mapred_system indicates which version of the MapReduce |
|
%% system should be used: 'pipe' means riak_pipe will |
|
%% power MapReduce queries, while 'legacy' means that luke |
|
%% will be used |
|
{mapred_system, pipe}, |
|
|
|
%% mapred_2i_pipe indicates whether secondary-index |
|
%% MapReduce inputs are queued in parallel via their own |
|
%% pipe ('true'), or serially via a helper process |
|
%% ('false' or undefined). Set to 'false' or leave |
|
%% undefined during a rolling upgrade from 1.0. |
|
{mapred_2i_pipe, true}, |
|
|
|
%% directory used to store a transient queue for pending |
|
%% map tasks |
|
%% Only valid when mapred_system == legacy |
|
%% {mapred_queue_dir, "./data/mr_queue" }, |
|
|
|
%% Each of the following entries control how many Javascript |
|
%% virtual machines are available for executing map, reduce, |
|
%% pre- and post-commit hook functions. |
|
{map_js_vm_count, 8 }, |
|
{reduce_js_vm_count, 6 }, |
|
{hook_js_vm_count, 2 }, |
|
|
|
%% Number of items the mapper will fetch in one request. |
|
%% Larger values can impact read/write performance for |
|
%% non-MapReduce requests. |
|
%% Only valid when mapred_system == legacy |
|
%% {mapper_batch_size, 5}, |
|
|
|
%% js_max_vm_mem is the maximum amount of memory, in megabytes, |
|
%% allocated to the Javascript VMs. If unset, the default is |
|
%% 8MB. |
|
{js_max_vm_mem, 8}, |
|
|
|
%% js_thread_stack is the maximum amount of thread stack, in megabyes, |
|
%% allocate to the Javascript VMs. If unset, the default is 16MB. |
|
%% NOTE: This is not the same as the C thread stack. |
|
{js_thread_stack, 16}, |
|
|
|
%% Number of objects held in the MapReduce cache. These will be |
|
%% ejected when the cache runs out of room or the bucket/key |
|
%% pair for that entry changes |
|
%% Only valid when mapred_system == legacy |
|
%% {map_cache_size, 10000}, |
|
|
|
%% js_source_dir should point to a directory containing Javascript |
|
%% source files which will be loaded by Riak when it initializes |
|
%% Javascript VMs. |
|
%{js_source_dir, "/tmp/js_source"}, |
|
|
|
%% http_url_encoding determines how Riak treats URL encoded |
|
%% buckets, keys, and links over the REST API. When set to 'on' |
|
%% Riak always decodes encoded values sent as URLs and Headers. |
|
%% Otherwise, Riak defaults to compatibility mode where links |
|
%% are decoded, but buckets and keys are not. The compatibility |
|
%% mode will be removed in a future release. |
|
{http_url_encoding, on}, |
|
|
|
%% riak_stat enables the use of the "riak-admin status" command to |
|
%% retrieve information the Riak node for performance and debugging needs |
|
{riak_kv_stat, true}, |
|
|
|
%% When using riak_kv_stat, use the legacy routines for tracking |
|
{legacy_stats, true}, |
|
|
|
%% Switch to vnode-based vclocks rather than client ids. This |
|
%% significantly reduces the number of vclock entries. |
|
%% Only set true if *all* nodes in the cluster are upgraded to 1.0 |
|
{vnode_vclocks, true}, |
|
|
|
%% This option enables compatability of bucket and key listing |
|
%% with 0.14 and earlier versions. Once a rolling upgrade to |
|
%% a version > 0.14 is completed for a cluster, this should be |
|
%% set to false for improved performance for bucket and key |
|
%% listing operations. |
|
{legacy_keylisting, false}, |
|
|
|
%% This option toggles compatibility of keylisting with 1.0 |
|
%% and earlier versions. Once a rolling upgrade to a version |
|
%% > 1.0 is completed for a cluster, this should be set to |
|
%% true for better control of memory usage during key listing |
|
%% operations |
|
{listkeys_backpressure, true} |
|
]}, |
|
|
|
%% Riak Search Config |
|
{riak_search, [ |
|
%% To enable Search functionality set this 'true'. |
|
{enabled, false} |
|
]}, |
|
|
|
%% Merge Index Config |
|
{merge_index, [ |
|
%% The root dir to store search merge_index data |
|
{data_root, "./data/merge_index"}, |
|
|
|
%% The root dir to store secondary index merge_index data |
|
{data_root_2i, "./data/merge_index_2i"}, |
|
|
|
%% Size, in bytes, of the in-memory buffer. When this |
|
%% threshold has been reached the data is transformed |
|
%% into a segment file which resides on disk. |
|
{buffer_rollover_size, 1048576}, |
|
|
|
%% Overtime the segment files need to be compacted. |
|
%% This is the maximum number of segments that will be |
|
%% compacted at once. A lower value will lead to |
|
%% quicker but more frequent compactions. |
|
{max_compact_segments, 20} |
|
]}, |
|
|
|
%% Bitcask Config |
|
{bitcask, [ |
|
{data_root, "./data/bitcask"} |
|
]}, |
|
|
|
%% eLevelDB Config |
|
{eleveldb, [ |
|
{data_root, "./data/leveldb"} |
|
]}, |
|
|
|
%% Lager Config |
|
{lager, [ |
|
%% What handlers to install with what arguments |
|
%% The defaults for the logfiles are to rotate the files when |
|
%% they reach 10Mb or at midnight, whichever comes first, and keep |
|
%% the last 5 rotations. See the lager README for a description of |
|
%% the time rotation format: |
|
%% https://github.com/basho/lager/blob/master/README.org |
|
%% |
|
%% If you wish to disable rotation, you can either set the size to 0 |
|
%% and the rotation time to "", or instead specify a 2-tuple that only |
|
%% consists of {Logfile, Level}. |
|
{handlers, [ |
|
{lager_console_backend, info}, |
|
{lager_file_backend, [ |
|
{"./log/error.log", error, 10485760, "$D0", 5}, |
|
{"./log/console.log", info, 10485760, "$D0", 5} |
|
]} |
|
]}, |
|
|
|
%% Whether to write a crash log, and where. |
|
%% Commented/omitted/undefined means no crash logger. |
|
{crash_log, "./log/crash.log"}, |
|
|
|
%% Maximum size in bytes of events in the crash log - defaults to 65536 |
|
{crash_log_msg_size, 65536}, |
|
|
|
%% Maximum size of the crash log in bytes, before its rotated, set |
|
%% to 0 to disable rotation - default is 0 |
|
{crash_log_size, 10485760}, |
|
|
|
%% What time to rotate the crash log - default is no time |
|
%% rotation. See the lager README for a description of this format: |
|
%% https://github.com/basho/lager/blob/master/README.org |
|
{crash_log_date, "$D0"}, |
|
|
|
%% Number of rotated crash logs to keep, 0 means keep only the |
|
%% current one - default is 0 |
|
{crash_log_count, 5}, |
|
|
|
%% Whether to redirect error_logger messages into lager - defaults to true |
|
{error_logger_redirect, true} |
|
]}, |
|
|
|
%% riak_sysmon config |
|
{riak_sysmon, [ |
|
%% To disable forwarding events of a particular type, use a |
|
%% limit of 0. |
|
{process_limit, 30}, |
|
{port_limit, 2}, |
|
|
|
%% Finding reasonable limits for a given workload is a matter |
|
%% of experimentation. |
|
{gc_ms_limit, 100}, |
|
{heap_word_limit, 40111000}, |
|
|
|
%% Configure the following items to 'false' to disable logging |
|
%% of that event type. |
|
{busy_port, true}, |
|
{busy_dist_port, true} |
|
]}, |
|
|
|
%% SASL config |
|
{sasl, [ |
|
{sasl_error_logger, false} |
|
]}, |
|
|
|
%% riak_control config |
|
{riak_control, [ |
|
%% Set to false to disable the admin panel. |
|
{enabled, false}, |
|
|
|
%% Authentication style used for access to the admin |
|
%% panel. Valid styles are 'userlist' <TODO>. |
|
{auth, userlist}, |
|
|
|
%% If auth is set to 'userlist' then this is the |
|
%% list of usernames and passwords for access to the |
|
%% admin panel. |
|
{userlist, [{"user", "pass"} |
|
]}, |
|
|
|
%% The admin panel is broken up into multiple |
|
%% components, each of which is enabled or disabled |
|
%% by one of these settings. |
|
{admin, true} |
|
]} |
|
]. |