Prev Next

Database / ScyllaDB Interview questions

What happens internally when ScyllaDB performs compaction?

Compaction reads several existing SSTables, merges their contents row by row, and writes the result as new, consolidated SSTables, all while the affected data remains readable and writable through the process.

flowchart TD A[Compaction strategy selects candidate SSTables] --> B[Open selected SSTables for merged iteration] B --> C[Merge rows by partition/clustering key] C --> D[Resolve conflicts: keep latest write, apply tombstones] D --> E[Write consolidated rows to new SSTable] E --> F{Fully expired data past gc_grace?} F -- Yes --> G[Drop expired data entirely, no rows written] F -- No --> H[Persist new SSTable, update bloom filter/index] G --> I[Delete old input SSTables] H --> I

For each partition present in the input SSTables, compaction merges all the row fragments it finds, keeping the most recent value for each column based on write timestamps, and applying any tombstones so deleted data doesn't reappear. Data that's past both its TTL and gc_grace_seconds is dropped entirely rather than rewritten. Once the new SSTable (or SSTables, for LCS which produces multiple leveled outputs) is fully written and fsynced, the old input SSTables are deleted. Because compaction is CPU and I/O intensive, ScyllaDB throttles it via configurable bandwidth limits and prioritizes foreground read/write traffic, so compaction runs continuously in the background without starving the workload it's supporting.

What determines which value for a column survives a compaction merge?
What happens to data past both its TTL and gc_grace_seconds during compaction?

Invest now in Acorns!!! 🚀 Join Acorns and get your $5 bonus!
Acorns Logo

Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!

Earn passively and while sleeping

Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.

Robinhood Logo

Invest now!!! Get Free equity stock (US, UK only)!

Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.

The Robinhood app makes it easy to trade stocks, crypto and more.


Webull Logo

Webull! Receive free stock by signing up using the link: Webull signup.

More Related questions...

What is ScyllaDB? What are the key features of ScyllaDB? What is the shard-per-core architecture in ScyllaDB? Define a partition key in ScyllaDB? What is a clustering key in ScyllaDB? What are the data types supported by ScyllaDB? Describe the Seastar framework used by ScyllaDB? What are the types of consistency levels in ScyllaDB? List the compaction strategies available in ScyllaDB? How do you create a table in ScyllaDB? What is a materialized view in ScyllaDB? Explain the purpose of the commit log in ScyllaDB? What is ScyllaDB Alternator? How do you apply TTL to data in ScyllaDB? What is ScyllaDB Manager? Why doesn't ScyllaDB rely on a JVM? How does ScyllaDB achieve linear scalability per node? What is the difference between ScyllaDB and Apache Cassandra? When should you use a local secondary index versus a global one? What happens when a wide partition forms in ScyllaDB? How is data replicated across nodes in ScyllaDB? Why should you avoid large batch statements in ScyllaDB? What is the difference between ScyllaDB and DynamoDB? How does ScyllaDB handle node failure with hinted handoff? When would you choose LOCAL_QUORUM over QUORUM? How can you optimize write performance in ScyllaDB? What is the difference between memtables and SSTables? Why do we use tombstones in ScyllaDB? How does ScyllaDB's shard-aware driver route requests? What is the difference between STCS and LCS compaction? When should you use lightweight transactions in ScyllaDB? How is repair implemented in ScyllaDB? Why doesn't ScyllaDB support arbitrary ad-hoc joins? What is the difference between ScyllaDB tablets and vnodes? How do you troubleshoot high read latency in ScyllaDB? Explain the internal working of the Seastar future-promise model? Explain the execution flow of a write request in ScyllaDB? Explain the lifecycle of an SSTable in ScyllaDB? How does ScyllaDB guarantee strongly consistent schema changes using Raft? What happens internally when ScyllaDB performs compaction? How can you optimize a multi-datacenter ScyllaDB deployment for latency? Which is better and why: LOCAL_QUORUM or ONE for a globally distributed app? How does token-aware routing improve latency in ScyllaDB? Why is the gossip protocol critical to ScyllaDB's cluster membership? How do you troubleshoot compaction backlog in ScyllaDB? Explain the internal working of ScyllaDB's read path? What happens when a node becomes unavailable in a ScyllaDB cluster? How does ScyllaDB implement Change Data Capture internally? Explain the execution flow of a lightweight transaction in ScyllaDB? How can you optimize schema design to avoid wide partitions at scale?
Show more question and Answers...

Integration

Comments & Discussions