2015-04-22 80 views
3

完整免责声明:这是一个面试问题:在分布式系统中复制文件,以便所有服务器都有所有文件的副本

有M台机器。我们需要将M台机器之间的数据集复制到彼此之中,以便每台服务器都拥有所有数据集的副本。什么是最佳的算法来做到这一点?

我知道我可以通过遍历每个服务器来解决O(MN)(其中N是每台机器上数据集的平均数量)中的这个问题。有更好的方法吗?

+0

你的意思是一个串行或并行算法不太复杂? –

+0

我认为阿诺德只是寻找一个更好的时间复杂性的解决方案 - 因为访谈实际上只关心这一点。 –

回答

0

自我复制系统呢?

http://en.wikipedia.org/wiki/Self-replication#A_self-reproducing_computer_program

E.g .;如果您有M = 100台机器,每个数据集,你将有:

1tic: 1machine with the data 
2tic: 2machines with the data 
3tic: 4machines with the data 
4tic: 8machines with the data 
5tic: 16machines with the data 
6tic: 32machines with the data 
7tic: 64machines with the data 
8tic: 64machines with the data 
9tic: 100+machines with the data 

我觉得这是比O(MN)

相关问题