分层存储可以概括为将数据分为高频访问的热数据和低频访问的冷数据, 并分别存储在热数据层和冷数据层,以达到性能与成本的平衡。典型的交易系统中除了高频访问的资料数据、资产数据外,在交易过程中会产生大量的带时间戳的日志型记录,如交易流水数据、运行日志数据等,随着系统在网时间越长, 这类日志型记录会越来越多,最终整个系统的冗余数据变得异常庞大。这种情况在磁盘库上可能问题不太明显,但是在全内存态运行的数据库中就显得尤为棘手,毕竟内存的成本是相对高昂的,用内存去存储这类冗余数据显得不划算。
如图 4-3 所示为在一个典型交易系统中的冷热数据分类情况。进一步分析这类数据的用途可以发现,这类数据往往不参与交易系统核心交易过程,更多是作为事后分析、排查问题的数据依据。对这些数据的访问在时效性、吞吐量等指标方面并没有太高的要求,因此从交易系统角度看,将这类数据转移到低端存储上是完全可以接受的。这就需要内存数据库可以支持在多种存储介质上对数据进行迁移,并且这个过程必须是无感的、自动完成的,以免对应用层造成影响。