I am trying to use Microsoft Sync Framework 2.1 on a SQL Server database. There will be a high number of concurrent end users, synchronizing with a central database server.
Further specifications are:
- 1500 concurrent clients connect to 1 central database server
- Client are using MS SQL Server Express 2008 R2
- Server is using MS SQL Server Enterprise 2008 R2
- Short sync intervals (around 5 minutes)
- Database size will be 5 GB
- A webservice will be used as server-side SyncProvider
Does anyone have experience with Sync Framework environments similar to this?
- Is it possible?
- What is important to take into account when implementing this?
- What are the physical limits that I can expect?
some things to keep in mind:
No. of scopes - you might want to keep a 1-to-1 scope ratio for client-to-server instead of 1500 client scopes against one server scope. this isolates the sync knowledge of each client from one another, you may even drop and recreate a client scope without affecting other scopes. sync knowledge will be much compact as well.
Scope definition - dont dump all tables in one scope. different tables have different characteristics (e.g., download only, read-only, less frequent update, frequently updated, etc...). group tables based on their characteristics.
Batching - if the changes are small, dont batch. you incur performance overhead in batching since the batching has to write files and later on, it has to reconstitute the change dataset from the files.
Metadata Cleanup - setup metadata retention and metadata cleanup process. this should reduce the sync metadata (rows in the tracking tables and the sync knowledge).
WCF config -watch out for your WCF config entries such as timeout, message size, etc... be aware of this issue as well: http://support.microsoft.com/kb/2567595
EDIT:
Also, have a look at other Scope considerations here: Sync Framework Scope and SQL Azure Data Sync Dataset Considerations
The sample provided here : http://www.rajneeshnoonia.com/blog/2012/03/n-tier-sync-framework/
Is some thing close to your requirements
1:1 scope defined => we defined template and configure scope for each client based on this template.In this senerio T1 is defined in S1 and S2 however filters are used to identify row level records for each scope.
来源:https://stackoverflow.com/questions/10106978/microsoft-sync-framework-performance-and-scalability