a**********e 发帖数: 157 | 1 就是说不断有新数据输入,而且数据量很大,分布在多个机器上,(新的data push到
哪个机器上是随机的)。
怎样做效率比较高?谢谢。 |
c********t 发帖数: 5706 | 2 maintain a k size min-heap on each machine. Then merge-sort them to a master
machine. |
j*****y 发帖数: 1071 | 3 每台机器用一个 max queue of size k 保留 k个最小的数
然后再 merge 这些不同机器上的 queque
【在 a**********e 的大作中提到】 : 就是说不断有新数据输入,而且数据量很大,分布在多个机器上,(新的data push到 : 哪个机器上是随机的)。 : 怎样做效率比较高?谢谢。
|
P******r 发帖数: 842 | 4 max heap of the smallest k numbers?如果有个新数,小于max, delete max,
heapify。
master
【在 c********t 的大作中提到】 : maintain a k size min-heap on each machine. Then merge-sort them to a master : machine.
|
c********t 发帖数: 5706 | 5 你说得对!
【在 P******r 的大作中提到】 : max heap of the smallest k numbers?如果有个新数,小于max, delete max, : heapify。 : : master
|
e***s 发帖数: 799 | 6 delete max 应该是 replace max with new value吧?
【在 P******r 的大作中提到】 : max heap of the smallest k numbers?如果有个新数,小于max, delete max, : heapify。 : : master
|
a**********e 发帖数: 157 | 7 谢谢。
既然涉及master machine,可不可以每次有data进来,(在store在各个机器上的同时
),直接
把data也push一份到master machine上,这样只要在master machine上维持max heap就
可以了。
这样有什么问题呢?
master
【在 c********t 的大作中提到】 : maintain a k size min-heap on each machine. Then merge-sort them to a master : machine.
|
c********t 发帖数: 5706 | 8 我觉得,选择push还是poll要看requirement,如果这k个数据很常用,时时刻刻都会被
调用,那就push吧,如果只是偶尔查,那就要用的时候再从各个机器上poll.无论哪种
,都要在每台机器上存这个heap,否则传输出什么问题怎么办?
【在 a**********e 的大作中提到】 : 谢谢。 : 既然涉及master machine,可不可以每次有data进来,(在store在各个机器上的同时 : ),直接 : 把data也push一份到master machine上,这样只要在master machine上维持max heap就 : 可以了。 : 这样有什么问题呢? : : master
|