Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

more determinism in delete order #16401

Merged
merged 8 commits into from
Feb 28, 2023
Merged

Conversation

stephencompall-DA
Copy link
Contributor

@stephencompall-DA stephencompall-DA commented Feb 27, 2023

#16261 should also be merged.

- a prerequisite to make order-by on delete meaningful for large transactions
CHANGELOG_BEGIN
- [JSON API] Update the database in a different way that should lead to
  more predictable behavior with higher-performance transaction
  conflicts on Oracle.
CHANGELOG_END
@S11001001 S11001001 marked this pull request as ready for review February 27, 2023 20:31
Copy link
Contributor

@ray-roestenburg-da ray-roestenburg-da left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@S11001001 S11001001 merged commit f859dac into release/2.3.x Feb 28, 2023
@S11001001 S11001001 deleted the s11/2.3.x+delete-order-by branch February 28, 2023 21:16
@@ -882,6 +900,8 @@ private final class OracleQueries(
protected[this] override def toDBContractKey[CK: JsonWriter](x: CK): DBContractKey =
JsObject(Map("key" -> x.toJson))

override def allowDamlTransactionBatching = true
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BryceStansfieldAt-da added a commit that referenced this pull request Mar 7, 2023
S11001001 added a commit that referenced this pull request Mar 8, 2023
* Forward port of #16401

* specify arguments for delete in a fixed order

* disable backpressure transaction batching for Oracle update

* deterministic specification of offset update DMLs

* switch to updateMany for delete instead of `in` on Oracle

- suggested by @ray-roestenburg-da; thanks

* don't update ledger_offset table or start transaction stream if caught up to ledger end

* include tpid in delete order consideration

---------

Co-authored-by: Stephen Compall <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants