【问题标题】:Durably reordering values on disk持久地重新排序磁盘上的值
【发布时间】:2013-12-07 06:30:49
【问题描述】:

我在磁盘上以随机顺序存储了大量(数亿)固定大小的值。我将相同的一组值以不同的顺序存储在内存中。我需要按照它们在内存中的顺序将值存储在磁盘上。挑战在于:我需要在任何时候在磁盘上至少保留每个值的一个副本——即它需要是持久的。

我有相当多的 RAM 可以使用(这些值仅占 60% 左右),大量的临时存储,但持久磁盘上只有非常少量的空间,足以容纳不到一百万值。

给定磁盘上的值,我可以非常快速地在内存中找到它。但反之则不然,给定内存中的值,在磁盘上查找它非常慢。

鉴于这些限制,将值的顺序尽可能快地从内存传输到磁盘的最佳算法是什么?

【问题讨论】:

    标签: algorithm diskspace durability


    【解决方案1】:

    听起来你有一个排序问题,你的比较器是 RAM 中元素的顺序(元素 x 比元素 y“大”,如果 x 出现在 RAM 中的 y 之后)。

    可以使用external sort 解决。

    请注意,如果您允许重复,则需要进行更多处理以确保您的比较器有效(可以通过枚举相同的值并为每个重复项分配一个“dupe_id”来解决 - 在 RAM 和在磁盘上)

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 1970-01-01
      • 2016-02-26
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多