Skip to content

Commit 21cc6c2

Browse files
committed
Merge branch 'master' of https://github.com/basho/basho_docs into ej/kv/backups
2 parents 69bd300 + f69b9d5 commit 21cc6c2

File tree

661 files changed

+84987
-3897
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

661 files changed

+84987
-3897
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,9 @@ static/riak/**
2424
static/riakcs/**
2525
static/riakee/**
2626
static/shared/**
27+
static/css/main.css
28+
static/css/main.css.map
29+
static/js/main.js
30+
31+
vendor/
32+
.bundle/

config.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ params:
7373
releases:
7474
- ["2.0.0", "2.0.1", "2.0.2", "2.0.4", "2.0.5", "2.0.6", "2.0.7"]
7575
- ["2.1.1", "2.1.3", "2.1.4"]
76-
latest: "2.1.4"
76+
- ["2.2.0"]
77+
latest: "2.2.0"
7778
lts: "2.0.7"
7879
archived_url: "http://docs.basho.com/riak/1.4.12/"
7980
riak_cs:
@@ -88,20 +89,20 @@ params:
8889
riak_ts:
8990
path: "/riak/ts"
9091
archived_path: "/riakts"
91-
latest: "1.4.0"
9292
releases:
9393
- ["1.0.0"]
9494
- ["1.1.0"]
9595
- ["1.2.0"]
9696
- ["1.3.0", "1.3.1"]
9797
- ["1.4.0"]
98-
archived_path: "riakts"
98+
- ["1.5.0"]
99+
latest: "1.5.0"
99100
dataplatform:
100101
path: "/dataplatform"
101102
archived_path: "/dataplatform"
102-
latest: "1.0.0"
103103
releases:
104104
- ["1.0.0"]
105+
latest: "1.0.0"
105106
---
106107

107108

content/community/productadvisories.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ aliases:
2020

2121
This page contains product advisories that are periodically issued for Basho products.
2222

23-
23+
* [Slight chance that AAE could stall itself or crash a Riak node](/community/productadvisories/aaestall/)
2424
* [Default Configuration For Handoff May Cause Data Loss in TS](/community/productadvisories/130-dataloss/)
2525
* [LevelDB SEGV in Riak KV 2.1.3](/community/productadvisories/leveldbsegfault/)
2626
* [Possibility of Code Injection on Riak Init File](/community/productadvisories/codeinjectioninitfiles/)
@@ -31,6 +31,7 @@ This page contains product advisories that are periodically issued for Basho pro
3131
* [SSL 3.0 Vulnerability and POODLE Attack](/community/productadvisories/sslpoodle/)
3232
* [Map Data Type Disk Incompatibility](/community/productadvisories/maps-204/)
3333

34+
3435
## Questions
3536

3637
If you have questions about any of the advisories listed above, please
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
---
2+
title: "Active Anti-Entropy: Slight chance that AAE could stall itself or crash a Riak node."
3+
description: ""
4+
menu:
5+
community:
6+
name: "AAE: Slight Chance for Stall or Crash"
7+
identifier: "aaestall"
8+
weight: 050
9+
parent: "productadvisories"
10+
toc: true
11+
---
12+
13+
14+
Info |Value
15+
:----|:----
16+
Date issued | November 17, 2016
17+
Product | Riak KV
18+
Affected versions | Riak KV 2.0.0+, Riak KV 2.1.0+
19+
20+
21+
## Overview
22+
23+
There exists a highly unlikely condition where Riak KV’s active anti-entropy feature can either stall or cause a segmentation fault crash.
24+
25+
{{% note title="Riak KV Enterprise Edition" %}}
26+
If you are using Riak KV Enterprise Edition, please see the Product Advisory in the Basho Support Portal for your patches and instructions.
27+
{{% /note %}}
28+
29+
30+
## Description
31+
32+
The active anti-entropy feature (AAE) has a procedure known as a hash tree rebuild. This procedure uses a LevelDB feature called an iterator. The rebuild procedure has the potential to simultaneously instruct the iterator to retrieve the next data item and to close the iterator. The probability of both happening is very slight, but Basho was able to create the simultaneous instructions under extremely heavy loads across many hours.
33+
34+
35+
AAE stores its metadata within a LevelDB database. This metadata is independent of the user’s selected storage backend for Riak (LevelDB, Bitcask, memory, or multi). Therefore all users of AAE are impacted regardless of their chosen storage backend.
36+
37+
38+
## Affected Users
39+
40+
You could be impacted if you are running one of the listed versions of Riak KV and your riak.conf has the default setting: `entropy = active`.
41+
42+
* Riak KV 2.0.0+
43+
* Riak KV 2.1.0+
44+
45+
46+
## Impact
47+
48+
Active entropy hash tree rebuilds could stall indefinitely on a Riak node, or
49+
A Riak node could experience a segmentation fault that requires restarting Riak.
50+
51+
52+
## Mitigation Strategy
53+
54+
There are two approaches you can take to mitigate this issue:
55+
56+
* Update to the newly released Riak KV 2.2, or
57+
* Patch eLevelDB to 2.0.32.
58+
59+
60+
## Patching eLevelDB to 2.0.32
61+
62+
If an upgrade to Riak KV 2.2 is not possible in your environment, the LevelDB library can be patched. This patch contains natively-compiled code and is operating system specific.
63+
64+
{{% note title="WARNING" %}}
65+
Do not apply the eleveldb.so patch to Riak TS, it will prevent it functioning correctly.
66+
{{% /note %}}
67+
68+
69+
#### OS specific package links:
70+
71+
* [Debian 6](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_debian6.tar.gz)
72+
* [Debian 7](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_debian7.tar.gz)
73+
* [Fedora 19](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_fedora19.tar.gz)
74+
* [FreeBSD 9](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_freebsd10.tar.gz)
75+
* [OS X 10](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_osx10.8.tar.gz)
76+
* [RHEL 5](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_rhel5.tar.gz)
77+
* [RHEL 6](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_rhel6.tar.gz)
78+
* [RHEL 7](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_rhel7.tar.gz)
79+
* [SLES 11](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_sles11.tar.gz)
80+
* [SmartOS 1.8](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_smartos1.8.tar.gz)
81+
* [SmartOS 13.1](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_smartos13.1.tar.gz)
82+
* [Solaris 10](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_solaris10.tar.gz)
83+
* [Ubuntu Lucid](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_ubuntuLucid.tar.gz)
84+
* [Ubuntu Precise](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_ubuntuPrecise.tar.gz)
85+
* [Ubuntu Trusty](https://s3.amazonaws.com/downloads.basho.com/patches/eleveldb/2.0.32/eleveldb_2.0.32_ubuntuTrusty.tar.gz)
86+
87+
88+
### Install the Patch
89+
90+
To install this patch, on each node in the cluster you must:
91+
92+
93+
1. Determine your eleveldb directory<a name="determining"></a>.
94+
1. Find the Riak `lib` directory
95+
* RHEL/Centos/Fedora/SLES: `/usr/lib64/riak/lib/`
96+
* Ubuntu/Debian: `/usr/lib/riak/lib/`
97+
* FreeBSD: `/usr/local/lib/riak/lib/`
98+
* SmartOS: `/opt/local/lib/riak/lib/`
99+
* Solaris: `/opt/riak/lib/`
100+
1. Consult the directory listing for a directory beginning with `eleveldb`, for example: `eleveldb-2.0.17-0-g973fc92` on Riak KV 2.1.4 or `eleveldb-2.0.22-0-g185e296` on Riak KV 2.0.7
101+
1. Make a note of this directory name for the following steps.
102+
103+
104+
1. Stop the node by running `riak stop`.
105+
1. Change to the priv subdirectory of [your eleveldb directory](#determining).
106+
1. Rename the original eleveldb.so file to eleveldb.so.orig.
107+
1. Copy the provided eleveldb.so to the directory and verify correct permissions.
108+
1. If possible, verify that the md5sum of the eleveldb.so located in the eleveldb priv directory is correct.
109+
1. Change into the ebin subdirectory of [your eleveldb directory](#determining).
110+
1. Rename the original eleveldb.beam file to eleveldb.beam.orig.
111+
1. Copy the provided eleveldb.beam to the directory and verify correct permissions.
112+
1. If possible, verify that the md5sum of the eleveldb.beam located in the eleveldb ebin directory is correct.
113+
1. Start the node by running `riak start`.
114+
115+
116+
### To back out of this patch, on each node in the cluster you must:
117+
118+
1. Determine your eleveldb directory<a name="determining2"></a>.
119+
1. Change to the Riak lib directory
120+
* RHEL/Centos/Fedora/SLES: `/usr/lib64/riak/lib/`
121+
* Ubuntu/Debian: `/usr/lib/riak/lib/`
122+
* FreeBSD: `/usr/local/lib/riak/lib/`
123+
* SmartOS: `/opt/local/lib/riak/lib/`
124+
* Solaris: `/opt/riak/lib/`
125+
1. Consult the directory listing for a directory beginning with `eleveldb`, for example: `eleveldb-2.0.17-0-g973fc92` on Riak KV 2.1.4 or `eleveldb-2.0.22-0-g185e296` on Riak KV 2.0.7
126+
1. Make a note of this directory name for the following steps.
127+
128+
129+
1. Stop the node by running `riak stop`.
130+
1. Change to the priv subdirectory of [your eleveldb directory](#determining).
131+
1. Verify that you have an eleveldb.so.orig file present in this directory.
132+
1. Remove the patched eleveldb.so file.
133+
1. Rename `eleveldb.so.orig` to `eleveldb.so`.
134+
1. Change into the ebin subdirectory of [your eleveldb directory](#determining).
135+
1. Verify that you have an eleveldb.beam.orig file present in this directory.
136+
1. Remove the patched `eleveldb.beam` file.
137+
1. Rename `eleveldb.beam.orig` to `eleveldb.beam`.
138+
1. Start the node by running `riak start`.
139+
140+
141+
## Verifying the Patch Installation
142+
143+
When the patch is installed, the LevelDB LOG files will report that version 2.0.31 is installed.
144+
145+
146+
{{% note %}}
147+
**Note**: this is eleveldb version 2.0.32 but the leveldb LOG file is expected to report 2.0.31.
148+
{{% /note %}}
149+
150+
151+
The LOG files for each running vnode will have a log line similar to the following:
152+
153+
154+
```
155+
2016/03/17-18:42:50.544293 7ffaaf3b1700 Version: 2.0.31
156+
```

content/riak/kv/2.0.0/configuring/basic.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ aliases:
3434
[perf open files]: /riak/kv/2.0.0/using/performance/open-files-limit
3535
[perf index]: /riak/kv/2.0.0/using/performance
3636
[perf aws]: /riak/kv/2.0.0/using/performance/amazon-web-services
37+
[Cluster Capacity Planning]: /riak/kv/2.0.0/setup/planning/cluster-capacity/#ring-size-number-of-partitions
3738

3839
This document covers the parameters that are commonly adjusted when
3940
setting up a new cluster. We recommend that you also review the detailed
@@ -97,7 +98,7 @@ be negatively impacted by the excessive number of concurrent databases
9798
running on each server; if the ring size is too small, the servers' other
9899
resources (primarily CPU and RAM) will go underutilized.
99100

100-
See [Planning for a Riak System][plan start] and [Scaling and Operating Riak Best Practices][plan best practices] for more details on choosing a ring size.
101+
See [Cluster Capacity Planning] for more details on choosing a ring size.
101102

102103
The steps involved in changing the ring size depend on whether the
103104
servers (nodes) in the cluster have already been joined together.

content/riak/kv/2.0.0/configuring/reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ When configuring buckets [using bucket types][cluster ops bucket types], the tab
453453
<br /><br />
454454
<strong>Note</strong>: See <a href="../../developing/usage/conflict-resolution">
455455
Conflict Resolution</a> for a discussion of siblings.</td>
456-
<td><code>true</code></td>
456+
<td><code>false</code></td>
457457
</tr>
458458

459459
<tr>

content/riak/kv/2.0.0/developing/api/http/search-query.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,9 @@ has no documents associated with it:
6161
"start": 0
6262
},
6363
"responseHeader": {
64+
"status": 0,
6465
"QTime": 10,
65-
"params": { /* internal info from the query */ },
66-
"wt": "json"
67-
},
68-
"status": 0
66+
"params": { /* internal info from the query */ }
67+
}
6968
}
7069
```

content/riak/kv/2.0.0/developing/api/protocol-buffers/dt-fetch.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,13 @@ Parameter | Description
5151
> All of the optional parameters below have default values determined on a
5252
per-bucket basis. Please refer to the documentation on [setting bucket properties](/riak/kv/2.0.0/developing/api/protocol-buffers/set-bucket-props) for more information.
5353

54-
Furthermore, you can assign an integer value to the <code>r</code> and
55-
<code>pr</code>, provided that that integer value is less than or equal
56-
to N, <em>or</em> a special value denoting <code>one</code>
57-
(<code>4294967295-1</code>), <code>quorum</code>
58-
(<code>4294967295-2</code>), <code>all</code>
59-
(<code>4294967295-3</code>), or <code>default</code>
60-
(<code>4294967295-4</code>).
61-
</div>
54+
Furthermore, you can assign an integer value to the `r` and
55+
`pr`, provided that that integer value is less than or equal
56+
to N, _or_ a special value denoting `one`
57+
(`4294967295-1`), `quorum`
58+
(`4294967295-2`), `all`
59+
(`4294967295-3`), or `default`
60+
(`4294967295-4`).
6261

6362
Parameter | Description
6463
:---------|:-----------

0 commit comments

Comments
 (0)