1

让我解释一下我的项目的场景:

在系统架构中,节点多,中间服务器少,主服务器一台。

问题描述:

为了简化场景,我不解释中间服务器。常见的情况是假设系统中有 n 个节点(Node#1、Node#2、...、Node#n)和 1 个服务器(Server#1)。大多数本地输入将在节点级别完成,主要配置将在服务器级别完成。现在所有节点都应该将自己的数据同步到服务器(即上传),同时,它们应该从服务器下载其他节点的数据。因此,在所有节点和服务器上的同步过程数据将相同。有可能在同步的时候,任何一个节点都处于离线状态,所以这个节点在线时会从服务器上传和下载数据。

我的团队的解决方案:

我的团队建议使用 Microsoft 的同步框架 2.1。我们为概念验证创建了一个示例应用程序。该示例有一台服务器和一个节点,我们用数据填充服务器,就好像它来自节点#2 并将其与节点#1 同步,同步和冲突得到了正确解决。请注意,我们已经处理了主键和冲突。

我们目前看到的问题如下:

  1. 在服务器和所有节点之间成功同步后,我们应该删除/清空跟踪表条目,否则表大小将呈指数增长。同步成功后,所有节点都将清除其跟踪表,只有当所有节点都同步时,服务器才会清除跟踪表,否则将保留这些表。当服务器有跟踪表条目并且节点已清除表时,同步框架将再次尝试同步所有节点,这将导致重复条目。
4

2 回答 2

1

跟踪表用于更改跟踪,如果清除它,Sync Fx 将如何知道自上次同步以来发生了什么变化?

如果要减小大小,可以运行定期元数据清理并指定较低的保留期。

于 2013-02-22T08:38:31.813 回答
0

无法清除跟踪数据。正如JuneT已经提到的。

每条记录都需要有跟踪记录。所以一条跟踪记录的id等于对应记录的id。

确实,这是很多数据。我们的环境中有 200 多张桌子。这些表包含一个相应的跟踪表。所以表格总数超过400张。

在 10GB 的数据库中,跟踪数据约为 3GB (30%)。这个比率当然取决于每个数据模型,但它可以为您提供跟踪数据开销的指示。

于 2013-02-22T08:59:23.107 回答