diff --git a/apps/emqx_ds_builtin_raft/README.md b/apps/emqx_ds_builtin_raft/README.md index 7f468f365..ab288ef0e 100644 --- a/apps/emqx_ds_builtin_raft/README.md +++ b/apps/emqx_ds_builtin_raft/README.md @@ -1,3 +1,36 @@ # `emqx_ds_builtin_raft` Replication layer for the builtin EMQX durable storage backend that uses Raft algorithm. + + +Raft backend introduces the concept of **site** to alleviate the problem of changing node names. +Site IDs are persistent, and they are randomly generated at the first startup of the node. +Each node in the cluster has a unique site ID, that is independent from the Erlang node name (`emqx@...`). + +## Configurations + +OTP application environment variables: + +- `emqx_durable_storage.reads`: `leader_preferred` | `local_preferred`. + +# CLI + + +Runtime settings for the durable storages can be modified via CLI as well as the REST API. +The following CLI commands are available: + +- `emqx ctl ds info` — get a quick overview of the durable storage state +- `emqx ctl ds set_replicas ...` — update the list of replicas for a durable storage. +- `emqx ctl ds join ` — add a replica of durable storage on the site +- `emqx ctl ds leave ` — remove a replica of a durable storage from the site + +# HTTP APIs + +The following REST APIs are available for managing the builtin durable storages: + +- `/ds/sites` — list known sites. +- `/ds/sites/:site` — get information about the site (its status, current EMQX node name managing the site, etc.) +- `/ds/storages` — list durable storages +- `/ds/storages/:ds` — get information about the durable storage and its shards +- `/ds/storages/:ds/replicas` — list or update sites that contain replicas of a durable storage +- `/ds/storages/:ds/replicas/:site` — add or remove replica of the durable storage on the site diff --git a/apps/emqx_durable_storage/README.md b/apps/emqx_durable_storage/README.md index 739cbdc64..1e9f6be1b 100644 --- a/apps/emqx_durable_storage/README.md +++ b/apps/emqx_durable_storage/README.md @@ -13,11 +13,10 @@ This makes the storage disk requirements very predictable: only the number of _p DS _backend_ is a callback module that implements `emqx_ds` behavior. -EMQX repository contains the "builtin" backend, implemented in `emqx_ds_replication_layer` module, that uses Raft algorithm for data replication, and RocksDB as the main storage. +EMQX repository contains two builtin backends based on RocksDB: -Note that builtin backend introduces the concept of **site** to alleviate the problem of changing node names. -Site IDs are persistent, and they are randomly generated at the first startup of the node. -Each node in the cluster has a unique site ID, that is independent from the Erlang node name (`emqx@...`). +- `emqx_ds_builtin_local` +- `emqx_ds_builtin_raft` ### Layout @@ -113,8 +112,8 @@ In the future it can serve as a storage for retained messages or as a generic me # Configurations -Global options for `emqx_durable_storage` application are configured via OTP application environment. -Database-specific settings are stored in the schema table. +Common global options for builtin backends are configured via OTP application environment. +Database-specific settings are stored in EMQX config. The following application environment variables are available: @@ -124,26 +123,9 @@ The following application environment variables are available: - `emqx_durable_storage.egress_flush_interval`: period at which the batches of messages are committed to the durable storage. -- `emqx_durable_storage.reads`: `leader_preferred` | `local_preferred`. - -Runtime settings for the durable storages can be modified via CLI as well as the REST API. -The following CLI commands are available: - -- `emqx ctl ds info` — get a quick overview of the durable storage state -- `emqx ctl ds set_replicas ...` — update the list of replicas for a durable storage. -- `emqx ctl ds join ` — add a replica of durable storage on the site -- `emqx ctl ds leave ` — remove a replica of a durable storage from the site - # HTTP APIs -The following REST APIs are available for managing the builtin durable storages: - -- `/ds/sites` — list known sites. -- `/ds/sites/:site` — get information about the site (its status, current EMQX node name managing the site, etc.) -- `/ds/storages` — list durable storages -- `/ds/storages/:ds` — get information about the durable storage and its shards -- `/ds/storages/:ds/replicas` — list or update sites that contain replicas of a durable storage -- `/ds/storages/:ds/replicas/:site` — add or remove replica of the durable storage on the site +None # Other