Skip to main content
QUICK REVIEW

[论文解读] Cost-oblivious storage reallocation

Michael A. Bender, Martı́n Farach-Colton|arXiv (Cornell University)|Apr 8, 2014
Advanced Data Storage Technologies参考文献 42被引用 8
一句话总结

本文提出了一类成本无关的存储重分配算法,可同时最小化存储占用空间和重分配成本,在存储占用空间仅比最优值大 (1+ε) 的前提下,重分配成本控制在原始分配成本的 O((1/ε)log(1/ε)) 以内。这些算法在无需事先了解成本模型的前提下,对所有次可加成本函数均具有普遍有效性,因此在包括内存、磁盘和闪存在内的多种存储系统中均表现出鲁棒性。

ABSTRACT

Databases need to allocate and free blocks of storage on disk. Freed blocks introduce holes where no data is stored. Allocation systems attempt to reuse such deallocated regions in order to minimize the footprint on disk. If previously allocated blocks cannot be moved, the problem is called the memory allocation problem, which is known to have a logarithmic overhead in the footprint. This paper defines the storage reallocation problem, where previously allocated blocks can be moved, or reallocated, but at some cost. The algorithms presented here are cost oblivious, in that they work for a broad and reasonable class of cost functions, even when they do not know what the cost function is. The objective is to minimize the storage footprint, that is, the largest memory address containing an allocated object, while simultaneously minimizing the reallocation costs. This paper gives asymptotically optimal algorithms for storage reallocation, in which the storage footprint is at most (1+epsilon) times optimal, and the reallocation cost is at most (1/epsilon) times the original allocation cost, which is also optimal. The algorithms are cost oblivious as long as the allocation/reallocation cost function is subadditive.

研究动机与目标

  • 解决传统内存分配的局限性,即固定块无法移动,导致因对数下限而产生较高的竞争比。
  • 将存储重分配建模为一个动态问题,允许以成本移动先前分配的块,从而减少存储占用空间。
  • 设计成本无关的算法——在无需事先了解成本模型的前提下,对广泛的一类次可加成本函数均表现良好。
  • 在成本函数未知的情况下,实现接近最优的存储占用空间,同时将重分配成本控制在最优值的常数倍以内。
  • 对重分配过程进行去分摊处理,确保最坏情况下的性能界限,同时不牺牲分摊效率。

提出的方法

  • 该算法使用分层缓冲系统,包含按大小分类的段和一个大型尾部缓冲区,以防止嵌套刷新并确保进度。
  • 通过检查点机制和增量刷新,将重分配工作分布到各个更新中,维持分摊效率。
  • 系统动态地在大小类别中打包和解包对象,当缓冲区阈值被超过时触发刷新。
  • 关键技术是在刷新过程中使用临时工作空间,该空间更大以容纳尾部缓冲区,确保重分配有足够的空间。
  • 该算法利用成本函数的次可加性来界定总重分配成本,确保成本保持在原始分配成本的 O((1/ε)log(1/ε)) 以内。
  • 通过将重分配工作分散到 ε′X 个体积更新中,实现去分摊,确保每次更新的最坏情况成本为 O((1/ε)wf(1)+f(Δ))(针对大小为 w 的更新)。

实验结果

研究问题

  • RQ1是否可以在不依赖底层成本函数的前提下,实现存储占用空间在最优值的 (1+ε) 以内?
  • RQ2在成本函数为次可加的前提下,重分配算法是否能实现接近最优的重分配成本,而无需事先了解成本函数?
  • RQ3如何在保持分摊效率的同时,对最坏情况下的重分配成本进行界限控制?
  • RQ4为实现重分配过程的去分摊,需要哪些结构修改(如尾部缓冲区、检查点机制)?
  • RQ5同一套算法框架是否能普遍适用于具有不同成本特性的多样化存储介质?

主要发现

  • 存储占用空间被保证不超过最优占用空间的 (1+ε) 倍,实现了物理布局上的近似最优。
  • 总重分配成本被限制在原始分配成本的 O((1/ε)log(1/ε)) 以内,当 ε 为常数时,该成本处于最优值的常数倍范围内。
  • 这些算法是成本无关的:它们在所有次可加成本函数上均表现良好,且无需了解成本模型。
  • 去分摊版本确保每次更新的最坏情况重分配成本为 O((1/ε)wf(1)+f(Δ)),显著提升了实时系统中的可靠性。
  • 使用尾部缓冲区和检查点机制可防止嵌套刷新,并确保刷新在触发新刷新前完成。
  • 分析证明,任何违反存储占用空间边界的重分配策略,其重分配成本至少为 Ω(f(Δ)),从而证明了成本边界的紧致性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。