temporalio / temporalio/temporal

Cassandra schema should use default SizeTieredCompactionStrategy

Open
#3,633 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
23.2k
Forks
1.9k
Avg merge
2d 8h
Merged PRs (30d)
228

Description

The Cassandra schema uses LevelTieredCompaction (LCS) but likely should use default SizeTieredCompactionStrategy (STCS) instead. All of the tables seem to be configured with LCS but this is not a good general purpose configuration.

Level compaction (LCS) can involve significant write magnification, where data is re-written multiple times. In performance testing, reports show up to 13-fold write amplification with LCS. This blog article by ScyllaDB - a Cassandra compatible database -discusses the many downsides to using LCS:

The default STCS is preferred and works well for most workloads.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by locating the Cassandra schema definitions and the table compaction settings, then compare the current LCS configuration with Cassandra's default STCS behavior. Done means the applicable tables use the intended default strategy and the schema remains valid.

Written by the indexing model from the issue text.

Assessment

Tech stack
cassandra
Domain
databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.