【发布时间】:2016-08-31 22:27:54
【问题描述】:
如果我有一个非常大的列表存储在需要排序的外部存储器中。假设这个列表对于内存来说太大了,在设计外部排序算法时应该考虑哪些主要因素?
【问题讨论】:
-
什么样的外部存储器?
-
老实说,我只是使用 hadoop。它将所有数据存储在内存之外,并自动按键对键值对进行排序。在 Mapper 和 Reducer 之间。
-
我只是想知道你在创建算法时要考虑的主要因素是什么。例如。如果我不考虑数据的大小(其中“数据大小”是主要因素),我会遇到什么问题,这只是一个例子。我不是在寻找问题的具体解决方案。不过还是谢谢你的回答。
-
这个话题太宽泛,没有更具体的信息。无论如何,外部存储器通常要慢得多,因此您希望避免单独访问,而是使用块访问(将块移动到内部存储器做您的事情,并在完成后发回)。另一个问题是某些外部存储器(如 FLASH)的写入次数有限,因此您希望避免过多的重写。不知道使用的内存和接口硬件技术只是猜测,如果......
-
这正是我想要的。使用块访问是一个需要考虑的因素,非常有效且有用。谢谢你。现在我只需要几个,
标签: algorithm sorting external-sorting large-data