Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/faq/operations/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ keywords: ['operations', 'administration', 'deployment', 'cluster management', '
- [Which ClickHouse version should I use in production?](/faq/operations/production.md)
- [Is it possible to deploy ClickHouse with separate storage and compute?](/faq/operations/separate_storage.md)
- [Is it possible to delete old records from a ClickHouse table?](/faq/operations/delete-old-data.md)
- [How do I configure ClickHouse Keeper?](/guides/sre/keeper/index.md)
- [How do I configure ClickHouse Keeper?](/guides/sre/keeper/overview)
- [Can ClickHouse integrate with LDAP?](/guides/sre/user-management/configuring-ldap.md)
- [How do I configure users, roles and permissions in ClickHouse?](/guides/sre/user-management/index.md)
- [Can you update or delete rows in ClickHouse?](/guides/starter_guides/mutations.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/manage-and-deploy-index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This section contains the following topics:
| [Deployment and Scaling](/deployment-guides/index) | Working deployment examples based on the advice provided to ClickHouse users by the ClickHouse Support and Services organization. |
| [Separation of Storage and Compute](/guides/separation-storage-compute) | Guide exploring how you can use ClickHouse and S3 to implement an architecture with separated storage and compute. |
| [Sizing and hardware recommendations'](/guides/sizing-and-hardware-recommendations) | Guide discussing general recommendations regarding hardware, compute, memory, and disk configurations for open-source users. |
| [Configuring ClickHouse Keeper](/guides/sre/keeper/clickhouse-keeper) | Information and examples on how to configure ClickHouse Keeper. |
| [Configuring ClickHouse Keeper](/guides/sre/keeper/overview) | Information and examples on how to configure ClickHouse Keeper. |
| [Network ports](/guides/sre/network-ports) | List of network ports used by ClickHouse. |
| [Re-balancing Shards](/guides/sre/scaling-clusters) | Recommendations on re-balancing shards. |
| [Does ClickHouse support multi-region replication?](/faq/operations/multi-region-replication) | FAQ on multi-region replication. |
Expand Down
29 changes: 29 additions & 0 deletions docs/guides/sre/keeper/01_overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
slug: /guides/sre/keeper/overview

sidebar_label: 'Overview'
position: 1
keywords: ['Keeper', 'ZooKeeper', 'clickhouse-keeper']
description: 'ClickHouse Keeper, or clickhouse-keeper, replaces ZooKeeper and provides replication and coordination.'

Check warning on line 7 in docs/guides/sre/keeper/01_overview.md

View workflow job for this annotation

GitHub Actions / vale

ClickHouse.OxfordComma

Use a comma before the last 'and' or 'or' in a list of four or more items.
title: 'ClickHouse Keeper'
doc_type: 'landing-page'
---


import SelfManaged from '@site/docs/_snippets/_self_managed_only_automated.md';

<SelfManaged />

ClickHouse Keeper provides the coordination system for data [replication](/engines/table-engines/mergetree-family/replication.md) and [distributed DDL](/sql-reference/distributed-ddl.md) queries execution. ClickHouse Keeper is compatible with ZooKeeper.

### Implementation details {#implementation-details}

ZooKeeper is one of the first well-known open-source coordination systems. It's implemented in Java, and has a simple and powerful data model. ZooKeeper's coordination algorithm, ZooKeeper Atomic Broadcast (ZAB), doesn't provide linearizability guarantees for reads, because each ZooKeeper node serves reads locally. Unlike ZooKeeper, ClickHouse Keeper is written in C++ and uses the [RAFT algorithm](https://raft.github.io/) [implementation](https://github.com/eBay/NuRaft). This algorithm allows linearizability for reads and writes, and has several open-source implementations in different languages.

By default, ClickHouse Keeper provides the same guarantees as ZooKeeper: linearizable writes and non-linearizable reads. It has a compatible client-server protocol, so any standard ZooKeeper client can be used to interact with ClickHouse Keeper. Snapshots and logs have an incompatible format with ZooKeeper, but the `clickhouse-keeper-converter` tool enables the conversion of ZooKeeper data to ClickHouse Keeper snapshots. The interserver protocol in ClickHouse Keeper is also incompatible with ZooKeeper so a mixed ZooKeeper / ClickHouse Keeper cluster is impossible.

ClickHouse Keeper supports Access Control Lists (ACLs) the same way as [ZooKeeper](https://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html#sc_ZooKeeperAccessControl) does. ClickHouse Keeper supports the same set of permissions and has the identical built-in schemes: `world`, `auth` and `digest`. The digest authentication scheme uses the pair `username:password`, the password is encoded in Base64.

:::note
External integrations aren't supported.
:::
Loading
Loading