Shadowing Practice: The Secret Sauce Behind NoSQL: LSM Tree - Learn English Speaking with Video

Choose a practice mode

Each mode opens a full-screen practice room.

77 sentences
If sentences are too short or too long, click Edit to adjust them.
1
NoSQL databases like Cassandra have exploded in popularity in recent years.
2
One driver is the insatiable demand to ingest huge amounts of
3
data from an ever-growing number of sources like mobile application and IoT devices.
4
The secret sauce behind many of these NoSQL databases is a data structure called Log Structure Merge Tree.
5
An LSM tree is optimized for fast writes.
6
To understand how an LSM tree works, let's first take a look at how data is typically stored in a relational database.
7
A relational database is commonly backed by a data structure called a B-tree.
8
A B-tree is optimized for reads.
9
Updating the B-tree is relatively expensive as it involves random I.O and might include updating multiple pages on disk.
10
This limits how fast a B tree can ingest data.
11
An LSM tree works differently.
12
Writes are bashed in memory as they arrive in a structure called a mem table.
13
A mem table is ordered by object key and is usually implemented as a balanced binary tree.
14
As a mem table reaches a certain size, it is flushed to disk as an immutable sorted string table.
15
An ss table stores the key value pairs in a sorted sequence.
16
These writes are all sequential I.O.
17
They are fast on any storage media.
18
The new ss table becomes the most recent segment of the LSM tree.
19
As more data comes in, more and more of these immutable SS tables are created and added to the LSM tree,
20
with each one representing a small chronological subset of the incoming changes.
21
Since SS tables are immutable, an update to an existing object key does not override an existing table.
22
Instead, a new entry is added to the most recent SS table, which supersedes any entries in the old SS tables for the object key.
23
Deleting an object requires special handling too, since we cannot mark anything in the SS table as deleted.
24
To perform a delete, it adds a marker called a tombstone to the most recent SS table for the object key.
25
When we encounter the tombstone on read, we know the object has been deleted.
26
And yes, it is a bit unintuitive that a delete takes up extra space.
27
To serve a read request, we first try to find the key in the mem table, then in the most recent SS table in the LSM tree,
28
then the next SS table, and so on.
29
Since an SS table is sorted, the lookup can be done efficiently.
30
The accumulation of SS tables presents two issues.
31
As the number of SSTables grows, it will take an increasingly long time to look up a key.
32
And as the SSTables accumulate, there are more and more outdated entries as keys are updated and tombstones are added.
33
These take up precious disk space.
34
To fix these issues, there is a periodic merging and compaction process running in the background
35
to merge SSTables and discard outdated or deleted values.
36
This reclaims this space and caps the number of SSTables a read has to look through.
37
Since the tables are sorted, this merging and compaction process is simple and efficient.
38
The approach is similar to the one used in the merge phase of the merge sort algorithm.
39
This, in a nutshell, is how an LSM tree provides fast writes.
40
Let's recap.
41
An LSM tree buffers incoming writes in memory.
42
When the buffer fills up, we sort and flush it to disk as an immutable SS table.
43
The number of SS tables increases as more buffers get flushed to disk.
44
This creates a problem for reads, as each read has to search through these SS tables to perform a lookup.
45
To cap the number of SS tables it has to search through for each read, the LSM tree merges the SSTables and compacts them in the background.
46
Let's look at the compaction process more closely.
47
When the SSTables are merged, they are organized into levels.
48
This is where the tree part of the LSM tree comes into the picture.
49
There are different strategies to determine when and how the SSTables are merged and compacted.
50
There are two broad strategies, size-tiered compaction and leveled compaction.
51
Size tier compaction is optimized for write throughput.
52
Level compaction is more read optimized.
53
We won't go into too much detail on how these compaction strategies work.
54
There are a few key points to remember though.
55
Compaction keeps the number of SS tables manageable.
56
The SS tables are organized into levels, with each level gets exponentially larger as SS tables from the level above emerged into it.
57
Compaction consumes a lot of I.O.
58
A mistuned compaction could starve the system and slow down both read and write.
59
Finally, let's visit some common optimizations for the LSM trees in production systems.
60
There are many optimization strategies that try to provide read performance closer to that of the B tree.
61
What we explain below are just the common ones, and they are by no means exhaustive.
62
To look up a key, it performs searches on the SS tables at every level.
63
Even though search is fast on sorted data, going through all the on-disk SS tables consumes a lot of I.O.
64
Many systems keep a summary table in memory that contains the min-max range of each disk block of every level.
65
It allows the system to skip searches on those disk blocks where the key does not fall within the range.
66
This saves a lot of random I.O.
67
Another issue that could be potentially expensive is to look up a key that does not exist.
68
This would require looking through all the eligible blocks at all the levels.
69
Most systems keep a bloom filter at each level.
70
A bloom filter is a space-efficient data structure that returns a firm no if a key does not exist, or a probably yes if a key might exist.
71
This allows the system to skip a level entirely if the key does not exist there, which dramatically reduces the number of random I.O required.
72
In conclusion, NoSQL databases backed by an LSM tree could be tuned to support a very high write rate.
73
As with any database, proper tuning is the key.
74
For an LSM tree, compaction tuning is the most critical.
75
If you would like to learn more about system design, check out our books and weekly newsletter.
76
Please subscribe if you learn something new.
77
Thank you so much and we'll see you next time.

Download App

Everything you need to speak fluently

AI PronunciationScore every sentence
IPA PracticeMaster every sound
VocabularyBuild your word bank
Vocab GameLearn while playing

Same Channel

FOR YOU

Recommend Video

Vocabulary and speaking notes for this lesson

This C1 speaking lesson is built on the video “The Secret Sauce Behind NoSQL: LSM Tree”. The speaker keeps coming back to these words: table, tree, key, Lsm, compaction. This video has 77 sentences and 1089 words to shadow. The speech runs for 7:26. The speaker talks at a steady 147 words per minute, a comfortable pace for shadowing. Only 72% of the words are among the 3,000 most common in English, so the vocabulary is demanding.

Key vocabulary in this video

The 15 most advanced words in the video, with pronunciation and meaning:

WordPronunciationMeaning
compaction noun/kəmˈpækʃən/The process of compacting something, or something that has been compacted.
merge verb/mɝd͡ʒ/To combine into a whole.
disk noun/dɪsk/A thin, flat, circular plate or similar object.
immutable adjectiveUnable to be changed without exception.
optimize verb/ˈɑptɪmaɪz/To act optimistically or as an optimist.
tombstone noun/ˈtuːmstoʊn/A grave marker, a stone slab or similar object marking a person's grave.
buffer noun/ˈbʌfəɹ/A solution used to stabilize the pH (acidity) of a liquid, such as by resisting a change in pH when an acid or alkali is added.
flush verb/ˈflʌʃ/To cleanse by flooding with generous quantities of a fluid.
ingest verb/ɪnˈd͡ʒɛst/To take (a substance, e.g., food) into the body of an organism, especially through the mouth and into the gastrointestinal tract.
relational adjectiveRelating to relations.
outdated adjective/aʊtˈdeɪtɪd/Out of date, old-fashioned, antiquated.
optimization noun/ˌɑptəmaɪˈzeɪʃən/The design and operation of a system or process to make it as good as possible in some defined sense.
consume verb/kənˈsum/To use up.
incoming adjective/ˈɪnˌkʌmɪŋ/Coming (or about to come) in; arriving.
bloom noun/blum/A blossom; the flower of a plant; an expanded bud.

Phrasal verbs you will hear

WordPronunciationMeaning
look up verb/ˌlʊk ˈʌp/To have better prospects.
look through verbTo take a view of the contents of; search in, either with the eyes or by hand.
take up verbTo pick up.
check out verbTo record the departure or withdrawal of someone or something (such as guests, employees, books, etc.).
fill up verbTo make (something) completely full.
go through verbTo travel from one end of something to the other.
slow down verbTo decelerate.

Grammar in this video

The structures the speaker uses most, with the exact words from the video:

StructureIn the video
Passive voice be + past participle — the focus is on what happens, not who does itis optimized · is typically stored · is commonly backed
Present perfect have/has + past participle — a past action that still matters nowhave exploded · has been deleted

Pronunciation to watch

  • The “th” sounds: throughput /ˈθɹuː.pʊt/, algorithm /ˈælɡəɹɪðm̩/
  • The “sh” and “zh” sounds: compaction /kəmˈpækʃən/, flush /ˈflʌʃ/, optimization /ˌɑptəmaɪˈzeɪʃən/, exponentially /ɛkspə(ʊ)ˈnɛnʃəli/, insatiable /ɪnˈseɪʃ(j)əbəl/
  • Long words — get the stress right: optimization /ˌɑptəmaɪˈzeɪʃən/, accumulate /əˈkjuːmjʊˌleɪt/, chronological /ˌkɹɑnəˈlɑd͡ʒɪkəl/, exponentially /ɛkspə(ʊ)ˈnɛnʃəli/, insatiable /ɪnˈseɪʃ(j)əbəl/

How to practise with this video

  1. Listen to the whole video once without speaking and note the words you do not know.
  2. Shadow it sentence by sentence at normal speed, repeating each one until your rhythm matches the speaker.
  3. Record yourself and compare with the original, paying attention to words like compaction, merge, disk.

What is the Shadowing Technique?

Shadowing is a science-backed language learning technique originally developed for professional interpreter training and popularized by polyglot Dr. Alexander Arguelles. The method is simple but powerful: you listen to native English audio and immediately repeat it out loud — like a shadow following the speaker with just a 1–2 second delay. Unlike passive listening or grammar drills, shadowing forces your brain and mouth muscles to simultaneously process and reproduce real speech patterns. Research shows it significantly improves pronunciation accuracy, intonation, rhythm, connected speech, listening comprehension, and speaking fluency — making it one of the most effective methods for IELTS Speaking preparation and real-world English communication.

Shadowing technique: read the full step-by-step guide →