面试题答案
一键面试默认BlockCache方案
- 适用场景:读操作频繁且数据量适中,集群内存资源相对充裕。
- 原因:默认方案简单直接,在内存充足时,能有效缓存频繁读取的数据块,提升读性能。由于没有复杂的淘汰策略开销,在常规读多场景下能较好工作。
LRUBlockCache方案
- 适用场景:读操作频繁且数据访问模式具有时间局部性,即最近访问过的数据很可能在短期内再次被访问。
- 原因:LRU(最近最少使用)策略会优先淘汰长时间未被访问的数据块。在数据访问符合时间局部性的场景中,能精准地保留热点数据在缓存中,从而提高读命中率。
BucketCache方案
- 适用场景:读操作频繁,但内存资源有限,且对磁盘I/O性能有一定容忍度。
- 原因:BucketCache将部分缓存数据存储在磁盘(如SSD)上,扩大了缓存容量。虽然磁盘访问比内存慢,但在内存不足时,能通过磁盘缓存减少对慢速HDFS磁盘的直接读取,在成本和性能间取得平衡。