avani gadhai
avani gadhai

Reputation: 460

Sync framework clear tracking tables

Let me explain you my project's scenario:

In the system architecture there will be many nodes, few intermediate servers and one main server.

Problem description:

To simplify the scenario, I am not explaining intermediate servers. The common scenario is that suppose there are n number of nodes in the system (Node#1, Node#2,..., Node#n) and 1 server (Server#1). Majority of local input will be done at node level, major configurations will be done at server level. Now all the nodes should sync their data to the server(i.e upload), also at the same time, they should download the data of other nodes from the server. Hence after the sync process data on all nodes and server will be same. It is possible that at the sync time, any node is offline, so this node will upload and download the data from the server when its online.

My team's solution:

My team suggested on using Microsoft's sync framework 2.1. We created a sample application for Proof-of-concept. The sample had one server and one node, we populated the server with data as if it came from node#2 and sync it with node#1, the sync and conflicts were resolved properly. Kindly note here, we have already take care of primary keys and conflicts.

The problems we see so fare are as below:

  1. After successful sync between server and all nodes, we should delete/empty tracking table entries else the table sizes will grow exponentially. All the nodes will clear their tracking tables after successful sync, Server will clear the tracking table only if all the nodes are sync, else will keep the tables. When server has tracking table entries and the nodes have cleared the tables, sync framework will again try to sync will all nodes and this will result in duplicate entries.

Upvotes: 1

Views: 1996

Answers (2)

hwcverwe
hwcverwe

Reputation: 5367

It is not possible to clear tracking data. As JuneT already mentioned.

Each record needs to have a tracking record. So the Id of a tracking record is equal to the id of the corresponding record.

It is true it is a lot of data. We have over 200 tables in our environment. These tables contains a corresponding tracking table. So total amount of tables is over 400 tables.

In a 10GB database the tracking data is around 3GB (30%). This ratio depends of course per data model but it gives you an indication of the tracking data overhead.

Upvotes: 0

JuneT
JuneT

Reputation: 7860

the tracking tables are used for change tracking, if you clear it, how will Sync Fx know what has changed since the last sync?

If you want to reduce the size, you can run regular metadata cleanup with a lower retention specified.

Upvotes: 1

Related Questions