Skip to content

Commit

Permalink
added skipFastLockRound paramter to StreamTransactionOptions (#574)
Browse files Browse the repository at this point in the history
  • Loading branch information
rashtao authored Sep 5, 2024
1 parent 9fa5e7a commit 05c2358
Showing 1 changed file with 22 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public final class StreamTransactionOptions {
private Boolean allowImplicit;
@JsonIgnore
private Boolean allowDirtyRead;
private Boolean skipFastLockRound;

public StreamTransactionOptions() {
super();
Expand Down Expand Up @@ -148,4 +149,25 @@ public StreamTransactionOptions allowDirtyRead(final Boolean allowDirtyRead) {
return this;
}

public Boolean getSkipFastLockRound() {
return skipFastLockRound;
}

/**
* @param skipFastLockRound Whether to disable fast locking for write operations. Skipping the fast lock round can
* be faster overall if there are many concurrent Stream Transactions queued that all try
* to lock the same collection exclusively. It avoids deadlocking and retrying which can
* occur with the fast locking by guaranteeing a deterministic locking order at the expense
* of each actual locking operation taking longer.
* Fast locking should not be skipped for read-only Stream Transactions because it degrades
* performance if there are no concurrent transactions that use exclusive locks on the same
* collection.
* Default: {@code false}
* @return options
* @since ArangoDB 3.12.0
*/
public StreamTransactionOptions skipFastLockRound(final Boolean skipFastLockRound) {
this.skipFastLockRound = skipFastLockRound;
return this;
}
}

0 comments on commit 05c2358

Please sign in to comment.