转移大量数据的策略

时间:2010-10-10 19:40:49

标签: c# java architecture

我正在写我的硕士论文,并与一家数字标牌公司联系,我正在撰写关于大量数据分发的文章。我需要一些想法或一些记录的经验来传输大量数据(这是图像和视频,~100Mb - ~1Gb - 但任何数据都可以,大数据集会给出一些相同的问题)给多个客户端。

有没有人知道我可以研究如何以结构化方式处理这个问题的方法,或者至少指出我的方向(其他论文,书籍,论文,人)。

我现在的主要方法是解决一些问题: 1.如何在数据到达时确保数据完好无损(不是腐败,.png仍然有效) 2.我如何确定我是否收到了所有数据? 3 ...?

任何输入都是受欢迎的,目前的方法是通过WebServices流式传输,我将调查BitTorrent aproach(P2P),但这似乎不是一个正确的策略,因为每个客户端都可以显示不同的内容。

你们中的任何人都可以为数字标牌公司工作吗告诉我你的方法是怎样的?或者,如果您有将大型数据集从服务器移动到客户端的经验......您的方法是什么?

5 个答案:

答案 0 :(得分:4)

我的经验是在机器之间移动非常大的数据集 - 在计算和事务环境中大约140Gb的数据流 - 所以我的评论可能对你的查询来说太过分了。我们必须在我们的应用程序中加入一些基本原则:

1使数据流中断 - 所以如果数据传输有任何问题,应用程序只需要“回放”一小部分数据 - 在我的应用程序中我们必须确保没有问题会导致超过一个小时的计算损失。这意味着,除了连续记录数据和计算之外,从程序内部中断处理每个(在我的情况下是小时)检查记录和校正数据是最新的和正确的。

2检查每个处理块和数据的任何子划分的正确性(您的描述意味着不会有细分)。这隐含了关于转移的记录数据 - 交易数量;传输的字节数;和每个数据块的校验和,与其他数据分开记录。

3在本地和远程记录对数据执行的计算(这导致了传输数据的要求)。必须将数据传输到备份站点,该备份站点必须在主机上出现故障时才能运行。这意味着一个偏远的地理位置;在国家电网的不同部分拥有自己的电源;拥有独立的专用通信线路和服务器等。

4我们的解决方案意味着远程站点需要确认收到每个数据块,并且需要单独计算的记录数据以与源进行比较。显然,这种检查可以在任何一端完成,但我们选择在收件人系统上进行检查。

由于数据量大,这些原则是必要的;进行所有计算的计算成本;以及数据的敏感性。

在选择解决方案之前,您必须回答的主要问题是:

如果数据损坏或丢失多少钱?

目的地刷新数据的频率是多少?

如果目的地检测到问题,是否可以请求重新发送?

数据的可替换性如何?

答案 1 :(得分:0)

答案 2 :(得分:0)

Standford过去曾经有过一些程序,他们利用世界各地的机器来处理大量数据,从而帮助他们进行集群计算。

通常,他们将数据分成几个独立的部分,并将其发送到世界各地的笔记本电脑,然后在后台处理。为此,用户需要安装一个小软件。处理完数据后,通过它的软件上传到备用服务器。我不记得它的名字,但你可以在斯坦福站点搜索。它应该是他们的一些基因研究实验室。

答案 3 :(得分:0)

我的经验,是在一家致力于出租车顶部广告的公司。虽然我没有在系统的广告发布部分工作,但我认为大多数通信都是使用BitTorrent进行XMPP和广告发布。像我们一样在移动系统上,网络上下都很多,所以无论你选择什么,都不需要在失败时开始下载。

答案 4 :(得分:0)

必须使用流(缓冲) - 不要尝试将整个内容存储在内存中。 使用校验和或散列策略分解并验证小部件(如果您担心数据完整性,则可能需要键控散列)。

这些天处理大量数据非常简单......

相关问题