Answered by:
What's the amount of knowledge exchanged in a database synchronization?

Question
-
Hello June and other folks!
I have a (somewhat) simple question here:
I don't know the internals of the knowledge being exchanged between two providers when performing a Database synchronization, so if for example I have a filterless scope defined over a table that has, let's say, 5,000 records, the knowledge that it's exchanged between the providers, it's from the 5,000 records, or the framework only exchanges the knowledge from the records that were changed since the last synchronization?
You know, my concern here is that if I am synchronizing thousands of records, the knowledge neccesary to perform this will be too high.
For example, if I have a table with only one single integer field with 5,000 records, the data itself it's not big deal, but I don't know if the knowledge created to keep tracking that very data will be heavier than the data itself!!!!
How efficient is the Sync Framework with this issue?
Best regards.
Tuesday, July 20, 2010 11:43 PM
Answers
-
afaik, the knowledge tracks all rows in the scope. it's a compact structure but this can get big depending on the number of rows being tracked. take a look at the scope_info table and you'll notice that data size for the knowledge column is set to MAX.
- Marked as answer by Dauphin bleu Thursday, July 22, 2010 9:19 PM
Wednesday, July 21, 2010 4:24 AM -
Sync knowledge is a compact representation of all the changes which a particular sync endpoint knows about and it is used during change enumeration and conflict detection phases of the sync process.
When life is good and there are no conflicts, no errors during sync or sync interruptions, the sync knowledge remains compact and has just a scope clock vector. (Scope clock vector defines the most compact knowledge representation where its size is proportional to the number of endpoints which synchronize with each other.)When life is not that good and there are errors, conflicts or sync interruptions, exceptions are added to the knowledge. Those exceptions identify "deviations" for certain items, change units or ranges of items from the scope clock vector. Note that these exceptions are not permanent and go away after subsequent successful sync or when conflicts get resolved and then knowledge returns to its normal compact representation.
Hope this answers your question.
- Proposed as answer by Ganeshan Wednesday, July 21, 2010 5:07 PM
- Marked as answer by Dauphin bleu Thursday, July 22, 2010 9:18 PM
Wednesday, July 21, 2010 5:07 PM
All replies
-
afaik, the knowledge tracks all rows in the scope. it's a compact structure but this can get big depending on the number of rows being tracked. take a look at the scope_info table and you'll notice that data size for the knowledge column is set to MAX.
- Marked as answer by Dauphin bleu Thursday, July 22, 2010 9:19 PM
Wednesday, July 21, 2010 4:24 AM -
Sync knowledge is a compact representation of all the changes which a particular sync endpoint knows about and it is used during change enumeration and conflict detection phases of the sync process.
When life is good and there are no conflicts, no errors during sync or sync interruptions, the sync knowledge remains compact and has just a scope clock vector. (Scope clock vector defines the most compact knowledge representation where its size is proportional to the number of endpoints which synchronize with each other.)When life is not that good and there are errors, conflicts or sync interruptions, exceptions are added to the knowledge. Those exceptions identify "deviations" for certain items, change units or ranges of items from the scope clock vector. Note that these exceptions are not permanent and go away after subsequent successful sync or when conflicts get resolved and then knowledge returns to its normal compact representation.
Hope this answers your question.
- Proposed as answer by Ganeshan Wednesday, July 21, 2010 5:07 PM
- Marked as answer by Dauphin bleu Thursday, July 22, 2010 9:18 PM
Wednesday, July 21, 2010 5:07 PM