Hash Indexes vs LSM trees with SSTables
I was reading Designing-Data Intensive Applications, and I am confused about the usage of LSM trees with SSTables. The author talks about Hash Indexes and log files (written as segments which are compacted). Next he talks about SSTables that are sorted segments. I am confused about LSM trees. Given that LSM trees are flushed to disk when they exceed certain threshold size as a SSTable, I would assume that LSM trees contain data only and simply facilitate fast writes to the DB; and sparse Hash Indexes are used to index this data. Is that right? Thus LSM trees is just another layer in between Index and Log File. OR, are LSM trees also used as an index?
I was reading Designing-Data Intensive Applications
, and I am confused about the usage of LSM trees with SSTables.
The author talks about Hash Indexes and log files (written as segments which are compacted). Next he talks about SSTables that are sorted segments.
I am confused about LSM trees. Given that LSM trees are flushed to disk when they exceed certain threshold size as a SSTable, I would assume that LSM trees contain data only and simply facilitate fast writes to the DB; and sparse Hash Indexes are used to index this data. Is that right? Thus LSM trees is just another layer in between Index and Log File. OR, are LSM trees also used as an index?