Skip to content

Commit

Permalink
unify LSM-tree
Browse files Browse the repository at this point in the history
  • Loading branch information
TomShawn committed Sep 15, 2020
1 parent 5c53401 commit 8edf562
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 6 deletions.
4 changes: 1 addition & 3 deletions storage-engine/titan-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ summary: Learn how to configure Titan.

# Titan Configuration

Titan is a RocksDB-based plugin for key-value separation. The goal of Titan is to reduce write amplification in RocksDB and make the background compactions consume less I/O bandwidth and CPU resources when using large values. For more details of Titan, see [Titan Overview](/storage-engine/titan-overview.md).

This document introduces how to enable and disable Titan using the corresponding configuration items, as well as the relevant parameters and the Level Merge feature.
This document introduces how to enable and disable [Titan](/storage-engine/titan-overview.md) using the corresponding configuration items, as well as the relevant parameters and the Level Merge feature.

## Enable Titan

Expand Down
6 changes: 3 additions & 3 deletions storage-engine/titan-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ When the value size in Key-Value pairs is large, Titan performs better than Rock

## Key features

- Reduce write amplification by separating values from the log-structured merge-tree (LSM tree) and storing them independently.
- Reduce write amplification by separating values from the log-structured merge-tree (LSM-tree) and storing them independently.
- Seamlessly upgrade RocksDB instances to Titan. The upgrade does not require human intervention and does not impact online services.
- Achieve 100% compatibility with all RocksDB features used by the current TiKV.

Expand Down Expand Up @@ -39,11 +39,11 @@ The following figure shows the architecture of Titan:

![Titan Architecture](/media/titan/titan-1.png)

During flush and compaction operations, Titan separates values from the LSM tree. The advantage of this approach is that the write process is consistent with RocksDB, which reduces the chance of invasive changes to RocksDB.
During flush and compaction operations, Titan separates values from the LSM-tree. The advantage of this approach is that the write process is consistent with RocksDB, which reduces the chance of invasive changes to RocksDB.

### BlobFile

When Titan separates the value file from the LSM tree, it stores the value file in the BlobFile. The following figure shows the BlobFile format:
When Titan separates the value file from the LSM-tree, it stores the value file in the BlobFile. The following figure shows the BlobFile format:

![BlobFile Format](/media/titan/titan-2.png)

Expand Down

0 comments on commit 8edf562

Please sign in to comment.