none
syncFx 2.1 toolkit timing performance RRS feed

  • Question

  • I am using syn framework 2.1 plus the toolkit for the first time.
    I want to synchronize DB between server (sql server 2008,sqlLite)and PDAs as clients, with different platform (WM6.5, Android)
    I used the sample provided by Ms with sql server 2008 and WM6.5, it did work but it takes a long time , about 40 min
    the db contains 50000 records

    Is their anyway to reduce the time
    note: using Merge Replication it only took 2.5 min
    Monday, February 4, 2013 8:38 PM

All replies

  • did you use the codes from the Sync Toolkit or just plain Sync Framework for your WM6.5 ?
    Tuesday, February 5, 2013 12:00 PM
    Moderator
  • Dear JuneT, 

    Thanks for you reply, I have just run the sample with Sync Framework 2.1 "WM65Sample". And it worked fine with small data but when i tried it on large data the issue appeared i have inserted 32,000 record in [Status] table attached in the sample and 16,000 record in table [Item].

    It took 38 min exactly and when i test this same database in the merge replication it only took 2.5 min.

    I need to know if there are any enhancement that i can make to enhance the performance of Sync Framework, is this the normal behavior or there are something wrong?

    Tuesday, February 5, 2013 2:23 PM
  • Please anyone am I the only one facing this issue ? or it is a normal behavior in the Sync Framework.



    Friday, February 8, 2013 4:17 PM
  • i suggest you enable sync framework tracing on the server side to get some timings on the server side processes.

    looking at that sample, i wouldnt be surprise if its slow as it needs to retrieve changes, serialize them, deserialize and apply them row by row.

    Saturday, February 9, 2013 1:22 AM
    Moderator
  • Is there another samples i could check out to enhance this behavior.
    Saturday, February 9, 2013 8:19 AM
  • i suggest you enable sync framework tracing on the server side to get some timings on the server side processes.

    looking at that sample, i wouldnt be surprise if its slow as it needs to retrieve changes, serialize them, deserialize and apply them row by row.

    Well i'm facing the same problem when i try to extend the sample application and test it on larger database

    - i'm trying to understand what do you mean by "enable sync framework tracing on the server side" , all I found about sync framework tracing was that topic : http://msdn.microsoft.com/en-us/library/cc807160(SQL.110).aspx and i guess it has nothing to do with knowing timing of processes

    - also is there any alternative way to the way the sample works - as you mentioned retrieving changes , serializing ..... - and what would it be ?


    Sunday, February 10, 2013 1:21 PM
  • a detailed trace should give you the exact times when specific sync events are happening (start and end) in the background: connecting to databases, enumerating changes, applying changes, etc... 

    the server side component of the Sync Framework toolkit is just a standard SqlSyncProvider and the server side sync works just like the regular sync.

    there's is no alternative process, that's just how synchronization work: you track changes, enumerate them, apply them, resolve conflict, record an anchor to indicate last sync so you have a starting point on next sync.

    unlike merge replication where you have native libraries that works against the database, Sync Framework or the Sync Framework Toolkit is just like any other database client applications. 

    the main  bottleneck in the sample is on serialization and change application: records are retrieved from server and need to be serialize to the client and the client is doing the updates row by row. for example, in change application, you can explore doing bulk updates instead.

    Monday, February 11, 2013 11:57 AM
    Moderator