Skip to content

Commit ddf2092

Browse files
realyotaSaltTan
andcommitted
Update content/en/altinity-kb-setup-and-maintenance/altinity-kb-zookeeper/clickhouse-keeper.md
Co-authored-by: SaltTan <20357526+SaltTan@users.noreply.github.com>
1 parent 9860ab5 commit ddf2092

1 file changed

Lines changed: 9 additions & 9 deletions

File tree

content/en/altinity-kb-setup-and-maintenance/altinity-kb-zookeeper/clickhouse-keeper.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ See slides: https://presentations.clickhouse.com/meetup54/keeper.pdf and video
1717
ClickHouse Keeper is the recommended choice for new installations. It yields better performance in many cases due to the new features, like async replication or multi read. Some ClickHouse server features cannot be used without Keeper, for example the S3Queue.
1818

1919
- Use the latest Keeper version available in your supported upgrade path whenever possible.
20-
- Keeper can run on a newer version than the ClickHouse server itself. That was already useful in 2023 and is even more relevant now.
21-
- Modern Keeper usually performs better than older `23.x` expectations because the code matured significantly, newer protocol feature flags were added, and internal replication improved.
20+
- The Keeper version doesn’t need to match the ClickHouse server version
21+
- Modern Keeper usually performs better than older versions because the codebase has matured significantly, new protocol feature flags have been added, and internal replication has improved.
2222

2323
For existing systems that currently use Apache Zookeeper, you can consider upgrading to clickhouse-keeper especially if you will [upgrade ClickHouse](https://altinity.com/clickhouse-upgrade-overview/) also.
2424

@@ -30,7 +30,7 @@ Before upgrading ClickHouse Keeper from version older than 23.9 please check Upg
3030

3131
Keeper is optimized for ClickHouse workloads and written in C++ (and can be used as single-binary), so it don't need any external dependencies. It uses the same **client** protocol but both are implementing different consensus protocol: Zookeeper is using ZAB, while ClickHouse Keeper implements eBay NuRAFT [GitHub - eBay/NuRaft: C++ implementation of Raft core logic as a replication library](https://github.com/eBay/NuRaft) which improves stability and performance of base RAFT protocol.
3232

33-
clickhouse-keeper can also run embedded mode, inside the clickhouse-server which may be good for testing purposes or smaller instances where performance can be worse for the sake of simplicity.
33+
ClickHouse Keeper can also run in embedded mode, operating as a separate thread within the ClickHouse server process, which may be suitable for testing purposes or smaller instances where some performance can be sacrificed for simplicity
3434

3535
## Migration and upgrade guide
3636

@@ -62,19 +62,19 @@ See https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-zookee
6262

6363
## More than 3 Keeper nodes
6464

65-
Main issue with a bigger Keeper ensemble is they need more time to reelect and commit is taking more time which can slowdown insertions and DDL queries.
65+
The main issue with a larger Keeper ensemble is that it takes more time to re-elect a leader, and commits take longer, which can slow down insertions and DDL queries.
6666

67-
It should be fine, but we can't recommend running more than that number of zookeeper nodes (except observers).
67+
It should be fine, but we don’t recommend running more than three Keeper nodes (excluding observers).
6868

69-
Look it from the another perspective: It has no special advantages (unless you are obligated to survive simultaneous failure of 2 zookeeper nodes), in terms of performance it doesn't behave better (but may perform worse), and 'wastes' some resources (you need fast dedicated disks for zookeeper to work good, also some RAM / CPU).
69+
Increasing the number of nodes offers no significant advantages (unless you need to tolerate the simultaneous failure of two Keeper nodes). In terms of performance, it doesn’t perform better—and may even perform worseand it consumes additional resources (ZooKeeper requires fast, dedicated disks to perform well, as well as some RAM and CPU).
7070

7171
## clickhouse-keeper-client
7272

73-
In clickhouse-keeper-client paths now parses more stricly and should now be passed as string literals. In practice, this means using single quotes around paths, for example `ls '/'` instead of `ls /` and `get '/clickhouse/path'` instead o `get /clickhouse/path`.
73+
In clickhouse-keeper-client, paths are now parsed more strictly and must be passed as string literals. In practice, this means using single quotes around pathsfor example, ls '/' instead of ls /, and get '/clickhouse/path' instead of get /clickhouse/path.
7474

7575
## Example of a simple cluster
7676

77-
Keeper quorum size must be odd. A 2-node Keeper layout will lose quorum after a single node failure, so the recommended replicas for Keeper is 3.
77+
The Keeper ensemble size must be odd because it requires a majority (50% + 1 nodes) to form a quorum. A 2-node Keeper setup will lose quorum after a single node failure, so the recommended number of Keeper replicas is 3.
7878

7979
On `hostname1` and `hostname2` below, ClickHouse can use the embedded Keeper cluster from `<keeper_server>`, so a separate client-side `<keeper>` section is not required. If your ClickHouse servers connect to an external Keeper or ZooKeeper ensemble, see [ClickHouse config for Keeper]({{< ref "clickhouse-keeper-clickhouse-config" >}}).
8080

@@ -276,7 +276,7 @@ select count() from test;
276276
https://clickhouse.com/docs/en/guides/sre/keeper/clickhouse-keeper/
277277
- `clickhouse-keeper-client`:
278278
https://clickhouse.com/docs/en/operations/utilities/clickhouse-keeper-client
279-
- Keeper HTTP API and dashboard:
279+
- Keeper HTTP API and dashboard (26.1+):
280280
https://clickhouse.com/docs/operations/utilities/clickhouse-keeper-http-api
281281
- `system.zookeeper_connection`:
282282
https://clickhouse.com/docs/en/operations/system-tables/zookeeper_connection

0 commit comments

Comments
 (0)