问题:为什么HBase不使用B+ Tree而使用LSM-Tree?
原因是:
1.B+Tree不适合为经常发生写操作的表建立索引,因为表数据发生变化,就需要重写物化索引,尤其是当表的数据量特别大的时候,物化索引的时间是相当长的。
2.在数据插入时,尤其是数据量比较大的时候,会发生大量的磁盘随机写。随机写会发生多次的磁盘调度和寻道时间,一般在1ms~10ms。所以海量数据写入的时候性能很低。
问题:为什么HBase不使用B+ Tree而使用LSM-Tree?
原因是:
1.B+Tree不适合为经常发生写操作的表建立索引,因为表数据发生变化,就需要重写物化索引,尤其是当表的数据量特别大的时候,物化索引的时间是相当长的。
2.在数据插入时,尤其是数据量比较大的时候,会发生大量的磁盘随机写。随机写会发生多次的磁盘调度和寻道时间,一般在1ms~10ms。所以海量数据写入的时候性能很低。