NkBASE has several run-time configuration options. It uses standard Erlang application environment variables. Some options as specific for the nkbase application, while others belong to the riak_core or riak_ensemble applications.
- NkBASE config options
- Lager configuration options
- Riak Core config options
- Riak Ensemble config options
The current recognized options are:
| Options | Type | Default | Description |
|---|---|---|---|
| backends | [nkbase:backend()] |
[ets, leveldb] |
Backends to activate. Available backends are ets and leveldb |
| expire_resolution | integer() |
1000 |
Resolution for auto-expiration of timers in msecs (see auto-expiration) |
| expire_check | integer() |
60 |
Minimum time (in secs) to decide to delay the expiration timers |
| vnode_workers | integer() |
10 |
Number of workers to start at each vnode to process async requests |
| leveldb_options | proplist() |
[{max_open_files, 100}] |
Options for the leveldb backend (see eleveldb.erl and Riak configuration options) |
Have a look at the lager repository documentation.
Riak Core has many configuration options. The most important are:
| Options | Type | Default | Description |
|---|---|---|---|
| cluster_name | string() |
"default" |
Cluster name to use |
| platform_data_dir | string() |
"data" |
Directory to place the ring and all NkBASE information and databases |
| ring_creation_size | integer() |
8 |
Number of vnodes to start |
| target_n_val | integer() |
4 |
Highest n that you generally intend to use (to be used in vnodes distribution policy) |
| enable_consensus | boolean() |
false |
Start the strong consistency system |
Have a look to the riak_core repository and related Riak configuration options.
Riak Ensemble has many configuration options. The most important are:
| Options | Type | Default | Description |
|---|---|---|---|
| ensemble_tick | integer() |
500 |
Time to refresh leases (msecs) |
| lease_duration | integer() |
ensemble_tick * 3 div 2 |
Leader lease duration |
| trust_lease | boolean() |
true |
If leader leases are trusted or not. Trusting the lease allows a leader to reply to reads without contacting remote peers as long as its lease has not yet expired |
| follower_timeout | integer() |
lease_duration * 4 |
How long a follower waits to hear from the leader before abandoning it |
| peer_get_timeout | integer() |
60000 |
Internal timeout used by peer worker FSMs when performing gets |
| peer_put_timeout | integer() |
60000 |
Internal timeout used by peer worker FSMs when performing puts |
| alive_tokens | integer() |
2 |
Number of leader ticks that can go by without hearing from the ensemble |
| peer_workers | integer() |
1 |
The number of peer workers/FSM processes used by the leader |
| storage_delay | integer() |
50 |
The operation delay used to coalesce multiple local operations into a single disk operation |
| storage_tick | integer() |
5000 |
Periodic tick at which ensembles flushes operations to disk even if there are no explicit sync requests |
| tree_validation | boolean() |
true |
When true, synctrees are not trusted after a peer restart, requiring an exchange with a trusted majority to become trusted. This provides the strongest guarantees against byzantine faults. |
| synchronous_tree_updates | boolean() |
false |
Determines if remote synctree updates are performed synchronously. When true, tree updates are performed before replying to the user |
Have a look at the Riak configuration options for aditional information.