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

feat: split mutex for each account #49

Merged
merged 5 commits into from
Aug 21, 2024
Merged

feat: split mutex for each account #49

merged 5 commits into from
Aug 21, 2024

Conversation

beer-1
Copy link
Collaborator

@beer-1 beer-1 commented Aug 20, 2024

Description

Closes: #XXXX


Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • included the correct type prefix in the PR title, you can find examples of the prefixes below:
  • confirmed ! in the type prefix if API or client breaking change
  • targeted the correct branch
  • provided a link to the relevant issue or specification
  • reviewed "Files changed" and left comments if necessary
  • included the necessary unit and integration tests
  • updated the relevant documentation or specification, including comments for documenting Go code
  • confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic, API design and naming, documentation is accurate, tests and test coverage

Summary by CodeRabbit

  • New Features

    • Enhanced transaction handling by implementing separate mutexes for multiple accounts, improving concurrency and performance.
    • Introduced a caching mechanism for mutexes, allowing for simultaneous processing of transactions from different senders.
    • Increased the maximum number of queued transactions from 100 to 1000, enhancing transaction capacity.
  • Bug Fixes

    • Updated the underlying LRU cache implementation to address potential performance issues.
  • Documentation

    • Improved logging to include hexadecimal representations of sender addresses for better traceability.
    • Clarified configuration documentation regarding the maximum number of queued transactions.

@beer-1 beer-1 requested a review from a team as a code owner August 20, 2024 13:13
@beer-1 beer-1 self-assigned this Aug 20, 2024
Copy link

coderabbitai bot commented Aug 20, 2024

Caution

Review failed

The pull request is closed.

Walkthrough

Recent changes significantly enhance concurrency management in the JSONRPCBackend by replacing a single mutex with an LRU cache that maintains individual mutexes for each account. This allows for simultaneous transaction processing, reducing contention and improving overall performance. Additionally, updates to the golang-lru package provide a more robust cache implementation, further enabling scalability.

Changes

Files Change Summary
go.mod Added direct dependency on github.com/hashicorp/golang-lru/v2 v2.0.7 and removed indirect dependency on v1.0.2.
jsonrpc/backend/backend.go Updated JSONRPCBackend to use an lrucache.Cache for managing individual mutexes per account, enhancing concurrency.
jsonrpc/backend/tx.go Modified SendTx to implement a per-sender mutex mechanism, improving parallel transaction processing.
jsonrpc/config/config.go Increased DefaultQueuedTransactionCap from 100 to 1000, removed QueuedTransactionTTL, and updated related comments and flags.

Poem

🐇 In the land where transactions flow,
A cache of mutexes starts to grow.
With every sender, a lock is found,
Enhancing speed, we're safe and sound!
Hopping through code, oh what a delight,
Concurrency sings, all through the night! 🌙✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

codecov bot commented Aug 20, 2024

Codecov Report

Attention: Patch coverage is 0% with 45 lines in your changes missing coverage. Please review.

Project coverage is 26.32%. Comparing base (efcca2e) to head (be4512f).
Report is 1 commits behind head on main.

Files Patch % Lines
jsonrpc/backend/backend.go 0.00% 31 Missing ⚠️
jsonrpc/backend/tx.go 0.00% 13 Missing ⚠️
jsonrpc/config/config.go 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main      #49      +/-   ##
==========================================
- Coverage   26.35%   26.32%   -0.03%     
==========================================
  Files         111      111              
  Lines       11855    11868      +13     
==========================================
  Hits         3124     3124              
- Misses       8286     8299      +13     
  Partials      445      445              
Files Coverage Δ
jsonrpc/config/config.go 0.00% <0.00%> (ø)
jsonrpc/backend/tx.go 0.00% <0.00%> (ø)
jsonrpc/backend/backend.go 0.00% <0.00%> (ø)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between efcca2e and 164f693.

Files selected for processing (3)
  • go.mod (2 hunks)
  • jsonrpc/backend/backend.go (3 hunks)
  • jsonrpc/backend/tx.go (3 hunks)
Additional context used
GitHub Check: codecov/patch
jsonrpc/backend/backend.go

[warning] 59-62: jsonrpc/backend/backend.go#L59-L62
Added lines #L59 - L62 were not covered by tests


[warning] 65-67: jsonrpc/backend/backend.go#L65-L67
Added lines #L65 - L67 were not covered by tests

jsonrpc/backend/tx.go

[warning] 79-81: jsonrpc/backend/tx.go#L79-L81
Added lines #L79 - L81 were not covered by tests


[warning] 87-88: jsonrpc/backend/tx.go#L87-L88
Added lines #L87 - L88 were not covered by tests


[warning] 96-96: jsonrpc/backend/tx.go#L96
Added line #L96 was not covered by tests


[warning] 103-103: jsonrpc/backend/tx.go#L103
Added line #L103 was not covered by tests

Additional comments not posted (10)
jsonrpc/backend/backend.go (4)

8-8: Import statement for lrucache.

The import statement for lrucache is correctly added to support the new LRU cache implementation.


23-23: Addition of accMuts field in JSONRPCBackend.

The accMuts field has been added to store mutexes for each account using an LRU cache. This change is crucial for improving concurrency by allowing separate locks for different accounts.


65-70: Ensure accMuts is correctly initialized in NewJSONRPCBackend.

The accMuts field is correctly initialized within the NewJSONRPCBackend constructor. This ensures that the backend is ready to handle concurrent operations with separate locks for each account.

Tools
GitHub Check: codecov/patch

[warning] 65-67: jsonrpc/backend/backend.go#L65-L67
Added lines #L65 - L67 were not covered by tests


58-62: Initialize LRU cache for account mutexes.

The LRU cache is initialized to hold mutexes for up to 100 accounts. Ensure that this limit is appropriate for your application's concurrency requirements.

Verification successful

LRU Cache Initialization Verified

The LRU cache for account mutexes is correctly initialized with a capacity of 100, as specified in the code. Ensure that this limit aligns with your application's concurrency needs. If further validation is required, consider reviewing related documentation or usage patterns.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the LRU cache initialization for account mutexes is correctly implemented.

# Test: Check for the usage of `lrucache.New` with the correct parameters.
rg --type go 'lrucache\.New\[string, \*sync\.Mutex\]\(100\)'

Length of output: 145

Tools
GitHub Check: codecov/patch

[warning] 59-62: jsonrpc/backend/backend.go#L59-L62
Added lines #L59 - L62 were not covered by tests

jsonrpc/backend/tx.go (5)

71-78: Introduce mutex per sender.

The code introduces a mutex for each sender using the accMuts cache. This approach reduces contention by allowing transactions from different senders to be processed concurrently. Ensure that the logic for adding and retrieving mutexes is efficient and handles edge cases.


87-88: Log transaction enqueue with sender's hexadecimal address.

The logging statement now uses the sender's hexadecimal address, improving log readability. Ensure that this change is consistently applied across all relevant logging statements.

Tools
GitHub Check: codecov/patch

[warning] 87-88: jsonrpc/backend/tx.go#L87-L88
Added lines #L87 - L88 were not covered by tests


96-96: Consistent cache key formatting.

The cache key formatting uses the sender's hexadecimal address and sequence number, ensuring consistency in how transactions are identified in the cache.

Tools
GitHub Check: codecov/patch

[warning] 96-96: jsonrpc/backend/tx.go#L96
Added line #L96 was not covered by tests


103-103: Log transaction broadcast with sender's hexadecimal address.

The logging statement for broadcasting transactions now uses the sender's hexadecimal address. This enhances log clarity and consistency.

Tools
GitHub Check: codecov/patch

[warning] 103-103: jsonrpc/backend/tx.go#L103
Added line #L103 was not covered by tests


79-81: Lock and unlock sender-specific mutex.

The sender-specific mutex is correctly locked and unlocked, ensuring that operations for each sender are thread-safe. Ensure that there are no deadlocks or performance bottlenecks due to excessive locking.

Verification successful

Mutex usage is correct and thread-safe. The sender-specific mutex accMut is correctly locked and unlocked, ensuring thread safety for operations related to each sender. The use of an LRU cache for storing mutexes helps manage concurrency effectively. There are no signs of deadlocks or performance bottlenecks.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that the mutex lock and unlock operations are correctly implemented for each sender.

# Test: Check for the correct usage of `Lock` and `Unlock` on sender-specific mutexes.
rg --type go 'accMut\.Lock\(\)'
rg --type go 'accMut\.Unlock\(\)'

Length of output: 151


Script:

#!/bin/bash
# Search for all occurrences of `accMut` in the codebase to check for potential deadlocks or excessive locking.
rg --type go 'accMut'

Length of output: 480

Tools
GitHub Check: codecov/patch

[warning] 79-81: jsonrpc/backend/tx.go#L79-L81
Added lines #L79 - L81 were not covered by tests

go.mod (1)

35-35: Update golang-lru to version 2.0.7 as a direct dependency.

The golang-lru library is updated to version 2.0.7 and is now a direct dependency. This change likely improves performance or fixes issues from the previous version. Ensure compatibility with other parts of the codebase.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Outside diff range, codebase verification and nitpick comments (3)
jsonrpc/config/config.go (2)

98-98: Update documentation for QueuedTransactionCap.

Ensure that any documentation or configuration guides are updated to reflect the new default value for QueuedTransactionCap.

Consider updating comments or documentation to provide context on why the cap was increased.


142-142: Remove remaining references to QueuedTransactionTTL.

There is still a reference to QueuedTransactionTTL in the codebase that needs to be addressed:

  • jsonrpc/config/config.go: The line contains flagJSONRPCQueuedTransactionTTL = "json-rpc.queued-transaction-ttl".

Please ensure all such references are removed to avoid confusion or errors.

Analysis chain

Remove references to QueuedTransactionTTL.

Ensure that all references to QueuedTransactionTTL are removed from the codebase to prevent confusion or errors.

Run the following script to check for any remaining references to QueuedTransactionTTL:

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for remaining references to QueuedTransactionTTL

# Test: Search for QueuedTransactionTTL in the codebase. Expect: No matches
rg 'QueuedTransactionTTL'

Length of output: 119

Tools
GitHub Check: codecov/patch

[warning] 142-142: jsonrpc/config/config.go#L142
Added line #L142 was not covered by tests

jsonrpc/backend/tx.go (1)

87-89: Improve logging for transaction queuing.

The logging statement provides useful information, but consider adding more context to help with debugging.

Consider including additional transaction details or context in the log message:

b.logger.Debug("enqueue tx", "sender", senderHex, "txSeq", txSeq, "accSeq", accSeq, "txBytesLen", len(txBytes))
Tools
GitHub Check: codecov/patch

[warning] 87-89: jsonrpc/backend/tx.go#L87-L89
Added lines #L87 - L89 were not covered by tests

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 164f693 and 9d0a002.

Files selected for processing (3)
  • jsonrpc/backend/backend.go (3 hunks)
  • jsonrpc/backend/tx.go (3 hunks)
  • jsonrpc/config/config.go (6 hunks)
Additional context used
GitHub Check: codecov/patch
jsonrpc/backend/backend.go

[warning] 40-42: jsonrpc/backend/backend.go#L40-L42
Added lines #L40 - L42 were not covered by tests


[warning] 44-44: jsonrpc/backend/backend.go#L44
Added line #L44 was not covered by tests


[warning] 49-49: jsonrpc/backend/backend.go#L49
Added line #L49 was not covered by tests


[warning] 51-53: jsonrpc/backend/backend.go#L51-L53
Added lines #L51 - L53 were not covered by tests


[warning] 55-56: jsonrpc/backend/backend.go#L55-L56
Added lines #L55 - L56 were not covered by tests

jsonrpc/config/config.go

[warning] 142-142: jsonrpc/config/config.go#L142
Added line #L142 was not covered by tests

jsonrpc/backend/tx.go

[warning] 71-77: jsonrpc/backend/tx.go#L71-L77
Added lines #L71 - L77 were not covered by tests


[warning] 79-81: jsonrpc/backend/tx.go#L79-L81
Added lines #L79 - L81 were not covered by tests


[warning] 87-89: jsonrpc/backend/tx.go#L87-L89
Added lines #L87 - L89 were not covered by tests


[warning] 93-95: jsonrpc/backend/tx.go#L93-L95
Added lines #L93 - L95 were not covered by tests


[warning] 97-97: jsonrpc/backend/tx.go#L97
Added line #L97 was not covered by tests

Additional comments not posted (6)
jsonrpc/backend/backend.go (3)

21-22: Review the use of LRU cache for mutexes.

The introduction of accMuts as an LRU cache for mutexes is a good approach to manage concurrency for multiple accounts. Ensure that the cache size is appropriately configured to handle the expected number of concurrent accounts.

Consider the implications of cache eviction on concurrency. If the cache size is too small, mutexes might be evicted prematurely, leading to potential contention issues.


49-56: Verify the context initialization.

The creation of a background context is standard, but ensure that it is used consistently throughout the application to avoid context-related issues.

The changes look good, but verify that the context is correctly propagated where needed.

Tools
GitHub Check: codecov/patch

[warning] 49-49: jsonrpc/backend/backend.go#L49
Added line #L49 was not covered by tests


[warning] 51-53: jsonrpc/backend/backend.go#L51-L53
Added lines #L51 - L53 were not covered by tests


[warning] 55-56: jsonrpc/backend/backend.go#L55-L56
Added lines #L55 - L56 were not covered by tests


7-7: Ensure the correct version of the golang-lru package is used.

The import of github.com/hashicorp/golang-lru/v2 indicates a version update. Verify that this version is compatible with the rest of the codebase and that any breaking changes are addressed.

Run the following script to check the version of golang-lru in the go.mod file:

Verification successful

Investigate the usage of golang-lru versions in the codebase.

The go.mod file lists both v2.0.7 and v1.0.2 of the golang-lru package. Verify where each version is used to ensure compatibility and avoid potential conflicts.


The golang-lru package versions are correctly managed.

The codebase uses golang-lru/v2 v2.0.7 directly in jsonrpc/backend/backend.go, while v1.0.2 is an indirect dependency. This setup is typical in Go projects and should not cause issues unless specific compatibility problems arise.

  • jsonrpc/backend/backend.go imports golang-lru/v2 directly.
  • v1.0.2 is an indirect dependency and does not affect the direct usage of v2.0.7.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the version of golang-lru in go.mod

# Test: Check for the version of golang-lru. Expect: Version 2.x.x
grep 'golang-lru' go.mod

Length of output: 119


Script:

#!/bin/bash
# Find all usages of golang-lru in the codebase to determine which version is being used.
rg 'golang-lru' -A 3

Length of output: 2964

jsonrpc/config/config.go (1)

41-42: Evaluate the impact of increasing DefaultQueuedTransactionCap.

The increase from 100 to 1000 for DefaultQueuedTransactionCap significantly changes the transaction handling capacity. Ensure that the system can handle this increase without performance degradation.

Consider testing the system under load to verify that the increased capacity does not lead to resource exhaustion or performance bottlenecks.

jsonrpc/backend/tx.go (2)

79-81: Verify mutex locking and unlocking.

Ensure that the Lock and Unlock operations on accMut are correctly paired and that no code paths can lead to a deadlock.

The use of defer for unlocking is a good practice to prevent deadlocks.

Tools
GitHub Check: codecov/patch

[warning] 79-81: jsonrpc/backend/tx.go#L79-L81
Added lines #L79 - L81 were not covered by tests


93-97: Review transaction broadcasting logic.

The logic for broadcasting queued transactions should be reviewed to ensure that it handles all edge cases, such as network failures or transaction rejections.

Consider adding retry logic or additional error handling to improve robustness.

Tools
GitHub Check: codecov/patch

[warning] 93-95: jsonrpc/backend/tx.go#L93-L95
Added lines #L93 - L95 were not covered by tests


[warning] 97-97: jsonrpc/backend/tx.go#L97
Added line #L97 was not covered by tests

jsonrpc/backend/tx.go Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Outside diff range, codebase verification and nitpick comments (1)
jsonrpc/backend/tx.go (1)

Line range hint 71-122: Consider adding tests for new functionality.

The new mutex mechanism and related changes are not covered by tests. Ensure that these lines are tested to verify correct behavior.

Do you want me to generate the unit testing code or open a GitHub issue to track this task?

Tools
GitHub Check: codecov/patch

[warning] 71-77: jsonrpc/backend/tx.go#L71-L77
Added lines #L71 - L77 were not covered by tests


[warning] 83-85: jsonrpc/backend/tx.go#L83-L85
Added lines #L83 - L85 were not covered by tests


[warning] 89-91: jsonrpc/backend/tx.go#L89-L91
Added lines #L89 - L91 were not covered by tests


[warning] 93-93: jsonrpc/backend/tx.go#L93
Added line #L93 was not covered by tests

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 9d0a002 and 942a4d6.

Files selected for processing (2)
  • jsonrpc/backend/backend.go (3 hunks)
  • jsonrpc/backend/tx.go (4 hunks)
Additional context used
GitHub Check: codecov/patch
jsonrpc/backend/backend.go

[warning] 42-44: jsonrpc/backend/backend.go#L42-L44
Added lines #L42 - L44 were not covered by tests


[warning] 46-46: jsonrpc/backend/backend.go#L46
Added line #L46 was not covered by tests


[warning] 51-51: jsonrpc/backend/backend.go#L51
Added line #L51 was not covered by tests


[warning] 53-55: jsonrpc/backend/backend.go#L53-L55
Added lines #L53 - L55 were not covered by tests


[warning] 57-58: jsonrpc/backend/backend.go#L57-L58
Added lines #L57 - L58 were not covered by tests

jsonrpc/backend/tx.go

[warning] 71-77: jsonrpc/backend/tx.go#L71-L77
Added lines #L71 - L77 were not covered by tests


[warning] 83-85: jsonrpc/backend/tx.go#L83-L85
Added lines #L83 - L85 were not covered by tests


[warning] 89-91: jsonrpc/backend/tx.go#L89-L91
Added lines #L89 - L91 were not covered by tests


[warning] 93-93: jsonrpc/backend/tx.go#L93
Added line #L93 was not covered by tests


[warning] 111-119: jsonrpc/backend/tx.go#L111-L119
Added lines #L111 - L119 were not covered by tests


[warning] 121-121: jsonrpc/backend/tx.go#L121
Added line #L121 was not covered by tests

Additional comments not posted (6)
jsonrpc/backend/backend.go (3)

7-7: Import statement for lrucache is appropriate.

The import of lrucache is necessary for implementing the new concurrency model with account-specific mutexes.


21-24: Struct changes align with new concurrency model.

The addition of accMuts to manage mutexes for each account is a suitable change for enhancing concurrency.


51-58: Return statement initializes all fields correctly.

The return statement correctly initializes all fields of JSONRPCBackend, including the new accMuts.

Tools
GitHub Check: codecov/patch

[warning] 51-51: jsonrpc/backend/backend.go#L51
Added line #L51 was not covered by tests


[warning] 53-55: jsonrpc/backend/backend.go#L53-L55
Added lines #L53 - L55 were not covered by tests


[warning] 57-58: jsonrpc/backend/backend.go#L57-L58
Added lines #L57 - L58 were not covered by tests

jsonrpc/backend/tx.go (3)

7-7: Import statement for sync is appropriate.

The import of sync is necessary for managing mutex operations in the new concurrency model.


83-85: Logging changes improve clarity.

Using hexadecimal representation for the sender in logs enhances readability and clarity.

Tools
GitHub Check: codecov/patch

[warning] 83-85: jsonrpc/backend/tx.go#L83-L85
Added lines #L83 - L85 were not covered by tests


89-93: Transaction processing loop logic is correct.

The loop correctly processes queued transactions for each sender, ensuring efficient transaction handling.

Tools
GitHub Check: codecov/patch

[warning] 89-91: jsonrpc/backend/tx.go#L89-L91
Added lines #L89 - L91 were not covered by tests


[warning] 93-93: jsonrpc/backend/tx.go#L93
Added line #L93 was not covered by tests

jsonrpc/backend/backend.go Outdated Show resolved Hide resolved
jsonrpc/backend/backend.go Outdated Show resolved Hide resolved
jsonrpc/backend/tx.go Outdated Show resolved Hide resolved
jsonrpc/backend/tx.go Outdated Show resolved Hide resolved
Copy link
Contributor

@Vritra4 Vritra4 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@Vritra4 Vritra4 left a comment

Choose a reason for hiding this comment

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

LGTM 🎉

@Vritra4 Vritra4 merged commit 7dd9388 into main Aug 21, 2024
6 checks passed
@Vritra4 Vritra4 deleted the feat/mutex-per-account branch August 21, 2024 03:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants