Skip to content

SQL Server Isolation Levels

Fabian Schmied edited this page Mar 26, 2016 · 3 revisions

Be sure to run NEventStore's MsSqlDialect queries in READ COMMITTED isolation level (which is NEventStore's default).

  • With SERIALIZABLE (possible, e.g., by enabling the EnlistInAmbientTransactions option and either creating serializable TransactionScopes, or not creating any TransactionScopes at all, see also https://github.com/NEventStore/NEventStore/issues/414), the chance of deadlocks under high load is highly increased.
  • With READ COMMITTED SNAPSHOT (this is a database option that NEventStore does not set by default), the GetFrom API and the CommitPollingClient are broken because these APIs rely on blocking behavior while a Commit operation is active. Since READ COMMITTED SNAPSHOT disables the blocking behavior, commits can be skipped when using those APIs.

Clone this wiki locally