An LSM tree buffers writes in a sorted in-memory table, flushes it as an immutable sorted file (SSTable), and background-compacts files into larger sorted runs. Writes become sequential appends (fast); reads may consult several layers, helped by bloom filters that skip files cheaply. The opposite trade of a B-tree: LSM favors write throughput, B-trees favor read latency.
Worked example: an LSM tree buffers writes in a memtable, flushes them as sorted files, and merges those files in the background (compaction) — turning random writes into fast sequential ones, which is why it backs write-heavy stores like Cassandra and RocksDB. Gotcha: reads may touch several files plus a bloom filter, and compaction bursts I/O — great write throughput, but read and space amplification are the costs to tune.