diff --git a/docs/architecture.md b/docs/architecture.md index 08436d7..76480c3 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -15,7 +15,7 @@ This page contains a high-level overview of SlateDB's architecture, read/write p The following diagram shows the architecture of SlateDB: -![Example banner](/img/architecture.png) +![Architecture diagram](/img/architecture.png) At a high level, SlateDB consists of the following components: @@ -29,6 +29,8 @@ At a high level, SlateDB consists of the following components: ## Writes +![Write diagram](/img/architecture-write.png) + SlateDB's write path is as follows: 1. A `put` call is made on the client. @@ -39,6 +41,8 @@ SlateDB's write path is as follows: ## Reads +![Read diagram](/img/architecture-read.png) + SlateDB's read path is as follows: 1. A `get` call is made on the client. @@ -69,6 +73,8 @@ SlateDB's manifest file contains the current state of the database, including: ## Compaction +![Compaction diagram](/img/architecture-compaction.png) + L0 SSTs are written to the `compacted` directory in the object store when `l0_sst_size_bytes` is exceeded. SlateDB's compactor is responsible for merging SSTs from L0 into lower levels (L1, L2, and so on). These lower levels are referred to as _sorted runs_ in SlateDB. Each SST in a sorted run contains a distinct subset of the keyspace. SlateDB's compactor has the following components: diff --git a/static/img/architecture-compaction.png b/static/img/architecture-compaction.png new file mode 100644 index 0000000..c8cd59b Binary files /dev/null and b/static/img/architecture-compaction.png differ diff --git a/static/img/architecture-read.png b/static/img/architecture-read.png new file mode 100644 index 0000000..b5294a5 Binary files /dev/null and b/static/img/architecture-read.png differ diff --git a/static/img/architecture-write.png b/static/img/architecture-write.png new file mode 100644 index 0000000..b353cd4 Binary files /dev/null and b/static/img/architecture-write.png differ