AC

      • Add CockroachDB to the list of Supported Environments
      • Add list of supported CockroachDB version(s) in Supported Environments page
      • Document limitations and differences in behavior when using CockroachDB

      Differences in behavior that should be documented

      • OptimisticLockingException will be throw in different circumstances
        • If CRDB detects any concurrency conflicts that CRDB detects and aborts the transaction for (=> link to CRDB transaction docs)
        • Needs more investigation: Concurrent modification of separate data in the same table can lead to a concurrency conflict when CRDB enforces foreign key constraints (e.g. execution of two unrelated jobs)
      • Cannot use engine property jdbcStatementTimeout: CRDB doesn't implement query cancellation yet (see https://github.com/cockroachdb/cockroach/issues/41335)
      • There will be more failures with OptimisticLockingException due to stricter requirements for isolation Serializable
        • Historic {{OptimisticLockingException}}s are not silently ignored with CRDB
        • Job acquisition and external task fetch&lock failures are not silently ignored. => CRDB retry interceptor can be used
      • Needs more investigation: check if tx timeout on CRDB is configurable; if not, then document this
      • Pessimistic locks are useless for the purpose we are using them for; due to Serializable isolation, a parallel transaction will not observe changed data immediately after the pessimistic lock is granted
        • Pessimistic locks are disabled with CRDB
        • The retry interceptor can be enabled to avoid e.g. engine startup failures
        • Exclusive message correlation is not supported

        This is the controller panel for Smart Panels app

              nikola.koevski Nikola Koevski
              nikola.koevski Nikola Koevski
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: