Skip to content

Backport priority mempool fixes from v0.35.x to v0.34.x.#8962

Merged
creachadair merged 2 commits intov0.34.xfrom
mjf/pm-34backport
Jul 8, 2022
Merged

Backport priority mempool fixes from v0.35.x to v0.34.x.#8962
creachadair merged 2 commits intov0.34.xfrom
mjf/pm-34backport

Conversation

@creachadair
Copy link

This is a manual backport of the changes from these commits:

Imports and type signatures have been updated to match the v0.34 usage.

This is a manual backport of the changes from these commits:

- bc49f66 Add more unit tests for the priority mempool. (#8961)
- 9b02094 Fix unbounded heap growth in the priority mempool. (#8944)

Imports and type signatures have been updated to match the v0.34 usage.
Copy link
Contributor

@tychoish tychoish left a comment

Choose a reason for hiding this comment

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

This is amazing.

@creachadair
Copy link
Author

This is amazing.

All the groundwork was laid by @jmalicevic and @cmwaters. Otherwise, mainly a vindication of the value of git worktree.

@creachadair creachadair merged commit 493dd69 into v0.34.x Jul 8, 2022
@creachadair creachadair deleted the mjf/pm-34backport branch July 8, 2022 14:22
@williambanfield
Copy link
Contributor

williambanfield commented Jul 13, 2022

Experimental Results

To verify that this backport fixed the issue and was correct, the mempool with and without the fix was run in a large testnet.

Testnet Setup

124 Total Nodes:
100 Validator Nodes
4 Seed Nodes
20 Full Nodes
Machine: Debian 11 with 4 virtual CPUs and 8 GB of ram.

Experimental Runs

2 Experiments were run comparing performance of the mempool presenting the issue and the mempool with the fixes.

For load generation the runner load generation command from version 5168515
was run on 10 out of the 100 validator nodes, generating a steady transaction load to the validator running on the same machine. The transactions were randomly generated up to a size of 1024 bytes using 32 worker go routines to send the load.

Title: Buggy Mempool

Duration: 4h
Software Version: v0.34.20-rc0

Memory Usage
memory

CPU Utilization
cpu

Mempool Size
size

Tx Rate
txrate

Title: Updated Mempool

Duration: 4h
Software Version: v0.34.20-rc1

memory

CPU Utilization
cpu

Mempool Size
size

Tx Rate
txrate

Summary

v1 Mempool reaches steady memory usage and does not appear to exhibit unbounded growth. The buggy mempool, on not a very large timescale, exhibits the unbounded growth.
For both, tx are consistently reaped for consensus.

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.

3 participants