Replies: 2 comments 9 replies
-
It would be nice in the case of a batch failing, if we could switch sync to 1 row per batch to allow the faulting row to be isolated. If there is already a way to do this, I've missed it. |
Beta Was this translation helpful? Give feedback.
-
I'm not a big fan of "chunking" transactions, but we can discuss it. I will not be able to implement a Today, we can fix the max size of each batch file with Do you think it can be a good idea to implements an options fixing the transaction behavior, like public enum TransactionBehaviour {
/// Default transaction mode: Everything is rollbacked if any errors occur during apply changes
AllOrNothing,
/// Each batch file (configured with BatchSize) has its own transaction
PerBatch,
/// No transaction: Really risky if any problems occur during apply changes
None
} If you are in a Can it be a solution ? (once again, not a big fan) |
Beta Was this translation helpful? Give feedback.
-
I know I have asked this before and a lot has been done to mitigate the problem of long running transactions/table locks with the read/write enum, but it is still an issue. In the current solution it is not possible to sync a database with 1 scope that contains 10+ gigs of data on SQL server. The transaction becomes so large in SQL server that disk space becomes an issue and if there is a problem where a rollback is needed it will never rollback because of the size. The database will go into recovery mode and become useless.
The issue is there is only 1 write transaction per scope. If a scope contains large amounts of data it's not possible to break into smaller parts. Sync framework has a setting called 'ApplicationTransactionSize' on the sql provider which was able to commit transactions based on the configured KB value. This kept the sql database log file size low and the possibility of the database going into recovery mode low. I know I keep going back to sync framework, but it had features that are needed for enterprise use.
Would it be possible to implement a new setting called 'TransactionPerBatch' so sync can commit in smaller chunks? And then the follow up questions....
Beta Was this translation helpful? Give feedback.
All reactions