Implementing high availability memory with a duplication cache

Implementing high availability memory with a duplication cache
复制标题

使用复制缓存实现高可用性内存

DOI:
10.1109/micro.2008.4771780
复制
发表时间:
2008
期刊:
2008 41st IEEE/ACM International Symposium on Microarchitecture
影响因子:
--
通讯作者:
Parthasarathy Ranganathan
Parthasarathy Ranganathan
中科院分区:
--
文献类型:
--
作者:
Nidhi Aggarwal;James E. Smith;K. Saluja;N. Jouppi;Parthasarathy Ranganathan

文献摘要

被引文献

相似文献

高可用性系统通常依赖于冗余组件和功能来实现故障检测、隔离和故障转移。未来,错误率的增加将使高可用性变得重要,即使在商品和批量市场中也是如此。系统将由芯片多处理器(CMP)构建,具有多个相同的组件,可以配置为提供高可用性的冗余。然而,使所有组件冗余的100%开销对于商品市场来说是不可接受的,特别是当所有应用程序可能不需要高可用性时。特别是,像当前的高可用性系统(例如NonStop和Stratus)那样复制整个内存是特别有问题的,因为系统成本将由内存成本主导。在本文中,我们提出了一种新的技术,称为复制缓存,以减少内存复制的开销在基于CMP的高可用性系统。复制缓存是主内存中的一个保留区域,用于保存属于正在运行的进程的当前写工作集(活动修改的页面集)的页面副本。所有其他页面均标记为只读,并且仅作为单个共享副本保存。复制缓存的大小可以在运行时动态配置,并允许系统设计人员以较小的性能开销来权衡内存复制的成本。我们广泛地分析了我们的重复缓存技术的有效性,并表明,对于一系列的基准内存重复可以减少60-90%,性能下降范围从1- 12%。平均而言,对于4%的性能开销,复制缓存可以减少60%的内存复制,对于5%的性能开销,可以减少90%的内存复制。
High availability systems typically rely on redundant components and functionality to achieve fault detection, isolation and fail over. In the future, increases in error rates will make high availability important even in the commodity and volume market. Systems will be built out of chip multiprocessors (CMPs) with multiple identical components that can be configured to provide redundancy for high availability. However, the 100% overhead of making all components redundant is going to be unacceptable for the commodity market, especially when all applications might not require high availability. In particular, duplicating the entire memory like the current high availability systems (e.g. NonStop and Stratus) do is particularly problematic given the fact that system costs are going to be dominated by the cost of memory. In this paper, we propose a novel technique called a duplication cache to reduce the overhead of memory duplication in CMP-based high availability systems. A duplication cache is a reserved area of main memory that holds copies of pages belonging to the current write working set (set of actively modified pages) of running processes. All other pages are marked as read-only and are kept only as a single, shared copy. The size of the duplication cache can be configured dynamically at runtime and allows system designers to trade off the cost of memory duplication with minor performance overhead. We extensively analyze the effectiveness of our duplication cache technique and show that for a range of benchmarks memory duplication can be reduced by 60-90% with performance degradation ranging from 1-12%. On average, a duplication cache can reduce memory duplication by 60% for a performance overhead of 4% and by 90% for a performance overhead of 5%.