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

perf: Make CacheKV store interleaved iterator and insertion not O(n^2) #10026

Merged

Conversation

ValarDragon
Copy link
Contributor

@ValarDragon ValarDragon commented Aug 29, 2021

Fix n^2 issues with the cacheKV store, and improve documentation in the process. This consists of two changes:

  • If dirty items gets too big, just fix that immediately, pushing it all into the sorted set of state updates.
  • Don't use a doubly linked list as sorted data back-end. This doesn't make sense as a data structure, since each insert will take O(N) time to seek, and thus N random insertions requires time O(n^2) overhead. Instead we use a proper B-tree for this. This is done with re-use of existing data structures used in the codebase.

cref osmosis-labs#24, which has the two changes split into separate commits

PR'ing as a draft for now, so @odeke-em can run the automated benchmark suite!

Co-authored-by: mconcat monoidconcat@gmail.com

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
  • added ! to the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • followed the guidelines for building modules
  • included the necessary unit and integration tests - Should be covered by existing tests
  • added a changelog entry to CHANGELOG.md
  • included comments for documenting Go code
  • updated the relevant documentation or specification
  • reviewed "Files changed" and left comments if necessary
  • 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 ! in the type prefix if API or client breaking change
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic
  • reviewed API design and naming
  • reviewed documentation is accurate
  • reviewed tests and test coverage
  • manually tested (if applicable)

* use memdb for cachekv

* Remove remaining n^2 nature of CacheKV (Speedup dirtyItems)

* Delete deadcode, fix lint

Co-authored-by: mconcat <monoidconcat@gmail.com>
@ValarDragon ValarDragon changed the title V0.42.9 with cache kv improvement (#24) perf: Make CacheKV store interleaved iterator and insertion not O(n^2) Aug 29, 2021
// O(N^2) overhead.
// Even without that, too many range checks eventually becomes more expensive
// than just not having the cache.
if n >= 1024 {
Copy link
Contributor Author

@ValarDragon ValarDragon Aug 29, 2021

Choose a reason for hiding this comment

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

This is really a magic number. Its intended to capture that doing a direct scan is actually a good idea for small n that you are likely to encounter within execution of a tx.

I imagine an optimal n here is actually smaller.

// from string -> []byte to speed up operations, it is not meant
// to be used generally, but for a specific pattern to check for available
// keys within a domain.
func strToByte(s string) []byte {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I believe this is not new code, and actually was written before? (I don't think that either I or joon wrote it)

Maybe it just got deleted at some point?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Please check internal/conv, we have an exported function for this code.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ah perfect, thanks

@odeke-em
Copy link
Collaborator

The bot didn't pick up this PR as it as a draft, but perhaps please convert it to normal PR then push a commit @ValarDragon

@ValarDragon ValarDragon marked this pull request as ready for review August 29, 2021 06:58
@codecov
Copy link

codecov bot commented Aug 29, 2021

Codecov Report

Merging #10026 (8de7613) into master (148451b) will decrease coverage by 0.00%.
The diff coverage is 87.30%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master   #10026      +/-   ##
==========================================
- Coverage   63.60%   63.60%   -0.01%     
==========================================
  Files         572      572              
  Lines       53588    53569      -19     
==========================================
- Hits        34085    34071      -14     
+ Misses      17557    17551       -6     
- Partials     1946     1947       +1     
Impacted Files Coverage Δ
store/cachekv/memiterator.go 80.76% <78.94%> (+11.27%) ⬆️
store/cachekv/store.go 82.27% <90.90%> (-3.14%) ⬇️
crypto/keys/internal/ecdsa/privkey.go 82.45% <0.00%> (-1.76%) ⬇️

@cyberbono3 cyberbono3 self-assigned this Aug 30, 2021
@ValarDragon
Copy link
Contributor Author

ValarDragon commented Sep 3, 2021

Any help needed on reviewing / benchmarking this?

(I'd like to start doing follow-on speedups, but want to avoid branch chaos and avoid putting it into this PR)

Copy link
Collaborator

@odeke-em odeke-em left a comment

Choose a reason for hiding this comment

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

Thank you @ValarDragon! LGTM. I also have another PR that avoids linear KeyInDomain checks (which was very hot) in live continuous profiles collected from cmd/gaiad, please help me review my PR. It might be simpler to merge my prior one first due to less code splits, which together with this will have significant changes. Also please push up a commit to trigger benchmarking :-)

} else {
// else do a linear scan to determine if the unsorted pairs are in the pool.
for key := range store.unsortedCache {
if dbm.IsKeyInDomain(strToByte(key), start, end) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

I mailed a PR that'll speed this up.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

ah perfect, I had a similar branch to remove the duplicated checks here as well. Happy to review your PR if you can link it (I didn't see it in the open PR list)

mergify bot pushed a commit that referenced this pull request Sep 5, 2021
## Description

Closes: #10072 

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if #10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
mergify bot pushed a commit that referenced this pull request Sep 5, 2021
## Description

Closes: #10072

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if #10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

(cherry picked from commit 78b151d)

# Conflicts:
#	CHANGELOG.md
@alexanderbez
Copy link
Contributor

alexanderbez commented Sep 9, 2021

@ValarDragon wanna get conflicts resolved and we can merge this?

@tac0turtle tac0turtle added the A:automerge Automatically merge PR once all prerequisites pass. label Sep 9, 2021
@tac0turtle
Copy link
Member

@alexanderbez @ValarDragon backports?

@alexanderbez
Copy link
Contributor

@alexanderbez @ValarDragon backports?

Added v0.44.x. I do not know about the others though.

@tac0turtle
Copy link
Member

Added v0.44.x. I do not know about the others though.

0.42 is still maintained right?

@ValarDragon
Copy link
Contributor Author

v0.42.x is maintained! Didn't realize I had perms for backports tagging. I'll resolve the changelog conflict

mergify bot pushed a commit that referenced this pull request Sep 16, 2021
#10026)

(cherry picked from commit 28bf2c1)

# Conflicts:
#	CHANGELOG.md
#	store/cachekv/store.go
@mergify
Copy link
Contributor

mergify bot commented Sep 16, 2021

Command backport release/v0.44.x: success

Backports have been created

mergify bot pushed a commit that referenced this pull request Sep 16, 2021
## Description

Closes: #10072

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if #10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

(cherry picked from commit 78b151d)

# Conflicts:
#	CHANGELOG.md
robert-zaremba added a commit that referenced this pull request Sep 16, 2021
…) (backport #10026) (#10167)

* perf: Make CacheKV store interleaved iterator and insertion not O(n^2) (#10026)

(cherry picked from commit 28bf2c1)

# Conflicts:
#	CHANGELOG.md
#	store/cachekv/store.go

* fix changelog conflict

* Update store.go

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
robert-zaremba added a commit that referenced this pull request Sep 17, 2021
)

* perf: Remove telemetry from wrappings of store (#10077)

## Description

Closes: #10072

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if #10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

(cherry picked from commit 78b151d)

# Conflicts:
#	CHANGELOG.md

* fix changelog

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
robert-zaremba added a commit that referenced this pull request Sep 17, 2021
…) (backport #10026) (#10114)

* perf: Make CacheKV store interleaved iterator and insertion not O(n^2) (#10026)

(cherry picked from commit 28bf2c1)

# Conflicts:
#	CHANGELOG.md
#	store/cachekv/store.go

* Fix merge conflict

* fix changelog

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: ValarDragon <dojha12@gmail.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
evan-forbes pushed a commit to evan-forbes/cosmos-sdk that referenced this pull request Oct 12, 2021
…) (backport cosmos#10026) (cosmos#10167)

* perf: Make CacheKV store interleaved iterator and insertion not O(n^2) (cosmos#10026)

(cherry picked from commit 28bf2c1)

# Conflicts:
#	CHANGELOG.md
#	store/cachekv/store.go

* fix changelog conflict

* Update store.go

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
evan-forbes pushed a commit to evan-forbes/cosmos-sdk that referenced this pull request Oct 12, 2021
cosmos#10170)

* perf: Remove telemetry from wrappings of store (cosmos#10077)

## Description

Closes: cosmos#10072

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if cosmos#10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

(cherry picked from commit 78b151d)

# Conflicts:
#	CHANGELOG.md

* fix changelog

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
evan-forbes pushed a commit to evan-forbes/cosmos-sdk that referenced this pull request Nov 1, 2021
…) (backport cosmos#10026) (cosmos#10167)

* perf: Make CacheKV store interleaved iterator and insertion not O(n^2) (cosmos#10026)

(cherry picked from commit 28bf2c1)

# Conflicts:
#	CHANGELOG.md
#	store/cachekv/store.go

* fix changelog conflict

* Update store.go

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
evan-forbes pushed a commit to evan-forbes/cosmos-sdk that referenced this pull request Nov 1, 2021
cosmos#10170)

* perf: Remove telemetry from wrappings of store (cosmos#10077)

## Description

Closes: cosmos#10072

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if cosmos#10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

(cherry picked from commit 78b151d)

# Conflicts:
#	CHANGELOG.md

* fix changelog

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
mergify bot pushed a commit that referenced this pull request Nov 10, 2021
…ng benchmarks (#10116)

## Description

Cref discussion in #10026, updates the CacheKV Benchmark naming and implementation to correspond to whats actually going on, and remove many irrelevant/incorrect components from being in the benchmarks timing.

Basically the old Benchmark's iterator creation was very flawed, and never hit the complex case, only repeatedly performing the best case performance of the iterator. Instead it really benchmarked iterator set and next operations.

This PR splits out the benchmarks for those two accordingly.

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [x] added a changelog entry to `CHANGELOG.md` - N/A imo
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [x] updated the relevant documentation or specification
- [x] reviewed "Files changed" and left comments if necessary
- [x] confirmed all CI checks have passed - lint failure unrelated

### 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
fedekunze pushed a commit to tharsis/cosmos-sdk that referenced this pull request Nov 15, 2021
…ng benchmarks (cosmos#10116)

## Description

Cref discussion in cosmos#10026, updates the CacheKV Benchmark naming and implementation to correspond to whats actually going on, and remove many irrelevant/incorrect components from being in the benchmarks timing.

Basically the old Benchmark's iterator creation was very flawed, and never hit the complex case, only repeatedly performing the best case performance of the iterator. Instead it really benchmarked iterator set and next operations.

This PR splits out the benchmarks for those two accordingly.

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [x] added a changelog entry to `CHANGELOG.md` - N/A imo
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [x] updated the relevant documentation or specification
- [x] reviewed "Files changed" and left comments if necessary
- [x] confirmed all CI checks have passed - lint failure unrelated

### 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
fedekunze added a commit to tharsis/cosmos-sdk that referenced this pull request Nov 15, 2021
* IAVL

* perf: store/cachekv: Correct the naming and implementation for existing benchmarks (cosmos#10116)

## Description

Cref discussion in cosmos#10026, updates the CacheKV Benchmark naming and implementation to correspond to whats actually going on, and remove many irrelevant/incorrect components from being in the benchmarks timing.

Basically the old Benchmark's iterator creation was very flawed, and never hit the complex case, only repeatedly performing the best case performance of the iterator. Instead it really benchmarked iterator set and next operations.

This PR splits out the benchmarks for those two accordingly.

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [x] added a changelog entry to `CHANGELOG.md` - N/A imo
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [x] updated the relevant documentation or specification
- [x] reviewed "Files changed" and left comments if necessary
- [x] confirmed all CI checks have passed - lint failure unrelated

### 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

* store cosmos#10486

* supply cosmos#10393

* supply cosmos#10393

* telemetry cosmos#10334

* module account

Co-authored-by: Marko <marbar3778@yahoo.com>
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Emmanuel T Odeke <emmanuel@orijtech.com>
Co-authored-by: likhita-809 <78951027+likhita-809@users.noreply.github.com>
blewater pushed a commit to e-money/cosmos-sdk that referenced this pull request Dec 8, 2021
…ng benchmarks (cosmos#10116)

## Description

Cref discussion in cosmos#10026, updates the CacheKV Benchmark naming and implementation to correspond to whats actually going on, and remove many irrelevant/incorrect components from being in the benchmarks timing.

Basically the old Benchmark's iterator creation was very flawed, and never hit the complex case, only repeatedly performing the best case performance of the iterator. Instead it really benchmarked iterator set and next operations.

This PR splits out the benchmarks for those two accordingly.

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [x] added a changelog entry to `CHANGELOG.md` - N/A imo
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [x] updated the relevant documentation or specification
- [x] reviewed "Files changed" and left comments if necessary
- [x] confirmed all CI checks have passed - lint failure unrelated

### 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
Raumo0 pushed a commit to mapofzones/cosmos-sdk that referenced this pull request Feb 13, 2022
* [capricorn] cosmos-sdk v0.42.9 to v0.42.10 (cosmos#117)

* fix: file keyring fails to add/import/export keys when input is not stdin (fix cosmos#9566) (backport cosmos#9821) (cosmos#9880)

* fix: file keyring fails to add/import/export keys when input is not stdin (fix cosmos#9566) (cosmos#9821)

## Description

Add a test case to reproduce the issue described in cosmos#9566. The test currently fails, and I've pointed some possible solutions over cosmos#9566 (comment). But I feel this needs more works in order to provide a more robust solution. I'll keep poking at better options, but taking any pointers if anyone has ideas.

(cherry picked from commit f479b51)

# Conflicts:
#	client/keys/add.go
#	client/keys/add_test.go
#	client/keys/export_test.go

* fix: merge conflict backporting pr-9821 (cosmos#9888)

Co-authored-by: daeMOn <flavien.binet@gmail.com>

* fix: Fix CLI query tx docs for acc/seq (cosmos#9942) (cosmos#9951)

<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

ref: user from #validators-verfied channel on Cosmos Discord

<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->

* build(deps): bump TM to v0.34.12 (backport cosmos#9956) (cosmos#9961)

* perf: Remove telemetry from wrappings of store (backport cosmos#10077) (cosmos#10084)

* docs: update to v0.44 version tag (cosmos#10069) (cosmos#10097)

(cherry picked from commit d6c3017)

# Conflicts:
#	docs/.vuepress/enhanceApp.js

Co-authored-by: Ryan Christoffersen <12519942+ryanchristo@users.noreply.github.com>

* fix!: update ABCI query to use request height (backport cosmos#9879) (cosmos#10144)

* fix: use keyring in config for add-genesis-account cmd (backport cosmos#9969) (cosmos#10065)

* fix: use keyring in config for add-genesis-account cmd (cosmos#9969)

<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

ref: cosmos#9644

+use the keyring backend (if specified) in the binary config for the add-genesis-account command
+update existing test to check for the case of keyring in config

* build(deps): bump github.com/tendermint/tendermint from 0.34.12 to 0.34.13 (backport cosmos#10106) (cosmos#10107)

* build(deps): bump github.com/tendermint/tendermint (cosmos#10106)

(cherry picked from commit 8ee5e50)

* fix go.sum

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>

* perf: Make CacheKV store interleaved iterator and insertion not O(n^2) (backport cosmos#10026) (cosmos#10114)

* perf: Make CacheKV store interleaved iterator and insertion not O(n^2) (cosmos#10026)

(cherry picked from commit 28bf2c1)

# Conflicts:
#	CHANGELOG.md
#	store/cachekv/store.go

* Fix merge conflict

* fix changelog

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: ValarDragon <dojha12@gmail.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>

* chore: bump IAVL version (backport cosmos#10040) (cosmos#10186)

* chore: bump IAVL version (cosmos#10040)

* chore: bump IAVL version

* test master

* update IAVL version

* adding missing go.sum entry

* adding missing entries

* fix go.sum

* clear go.sum

* fixing go.sum

Co-authored-by: marbar3778 <marbar3778@yahoo.com>
(cherry picked from commit 693ffb1)

* add changelog update

* tidy go.mod

Co-authored-by: Robert Zaremba <robert@zaremba.ch>

* feat: backport reject redundant transactions from ibc-go (cosmos#10211)

* backport refund of redundant packets from ibc-go

* update changelog

* address review comments and lint errors

* added nolint

Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>

* chore: Changelog and Release Notes for 0.42.10 (cosmos#10242)

* chores: bump tendermint version

* fix: add required helper for group module

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Ryan Christoffersen <12519942+ryanchristo@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: ValarDragon <dojha12@gmail.com>
Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>

* fix: add hack to handle group v2 messages in baseapp (cosmos#118)

* fix: add hack to handle group v2 messages in baseapp

* chores: disable lint warning

* feat: backport caelum bls on v0.42 sdk (cosmos#119)

* Bls (cosmos#104)

* bls signature for basic account

* benchmark for bls and ed25519

* added bls sig verify cost to genesis

* Revert "Merge branch 'fetchai:master' into bls"

This reverts commit a5dd8ea9c1597c285e9375f168dd7af51e76f6b3, reversing
changes made to 082e0710e3dd2f96733e76f8e2f928c2d7e4ab29.

* format using go tools

* nuisance golangci-lint errors

* Bls (cosmos#105)

* bls signature for basic account

* benchmark for bls and ed25519

* added bls sig verify cost to genesis

* Revert "Merge branch 'fetchai:master' into bls"

This reverts commit a5dd8ea9c1597c285e9375f168dd7af51e76f6b3, reversing
changes made to 082e0710e3dd2f96733e76f8e2f928c2d7e4ab29.

* format using go tools

* nuisance golangci-lint errors

* POP interfaces in accounts and authentication

* add bls multsig operations

* fixed golangci-lint error

* changes after comments

* change codespace for invalid pop error

* extend migrate with bls cost

* set bls cost multiplier

* fix ante test errors

* feat: Caelum (cosmos#111)

* bls signature for basic account

* benchmark for bls and ed25519

* added bls sig verify cost to genesis

* Revert "Merge branch 'fetchai:master' into bls"

This reverts commit a5dd8ea9c1597c285e9375f168dd7af51e76f6b3, reversing
changes made to 082e0710e3dd2f96733e76f8e2f928c2d7e4ab29.

* format using go tools

* nuisance golangci-lint errors

* Bls (cosmos#104)

* bls signature for basic account

* benchmark for bls and ed25519

* added bls sig verify cost to genesis

* Revert "Merge branch 'fetchai:master' into bls"

This reverts commit a5dd8ea9c1597c285e9375f168dd7af51e76f6b3, reversing
changes made to 082e0710e3dd2f96733e76f8e2f928c2d7e4ab29.

* format using go tools

* nuisance golangci-lint errors

* POP interfaces in accounts and authentication

* add bls multsig operations

* fixed golangci-lint error

* changes after comments

* initial commit from regen-ledger/x/group v1.0.0

* minor changes to bls12381 key generation

* initial commit from regen-ledger/proto/regen/group v1.0.0

* group module compatibility for fetchai cosomos-sdk

* add bls account restriction to group members

* fix bug in setting pop

* make msg uniqueness checking optional

* add bls basic/aggregate vote

* add checking on empty messages/public keys

* add gas caclulation/consumption for verifying aggregated votes

* minor change to gas calculation for voteagg

* initial commit for orm and types from regen-ledger v2.0.0-beta1

* upgrade testsuite to regen-ledger v2.0.0-beta1

* make bls requirement for group members optional

* add tests for bls related group operations

* client and server for poll and aggregated votes and integration tests

* fix bls related test errors

* fix proto-lint errors

* goimport format

* proto comments

* update blst to v0.3.5 and more tests for bls

* Update x/auth/ante/sigverify.go

Co-authored-by: daeMOn <flavien.binet@gmail.com>

* Update x/group/client/util.go

Co-authored-by: daeMOn <flavien.binet@gmail.com>

Co-authored-by: daeMOn <flavien.binet@gmail.com>

* fix: bls12381 compat with sdk v0.42

* fix: buf lint / breaking command changes

* fix: staking test want more gas

* chores: drop arm from CI test matrix

* chores: fix lint

Co-authored-by: kitounliu <58184672+kitounliu@users.noreply.github.com>
Co-authored-by: kitty <jia.liu@fetch.ai>

* fix: more gas for simulations. Disable test caching

Co-authored-by: kitounliu <58184672+kitounliu@users.noreply.github.com>
Co-authored-by: kitty <jia.liu@fetch.ai>

* chores: revert bls integration (cosmos#121)

* chores: bump sdk v0.42.11 (cosmos#123)

* chores: revert bls integration

* fix: --home flag parsing (backport cosmos#10226) (cosmos#10272)

* fix: --home flag parsing (cosmos#10226)

<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

Closes: #XXXX

<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->

* fix: null guard for tx fee amounts (backport cosmos#10327) (cosmos#10343)

* fix: null guard for tx fee amounts (cosmos#10327)

## Description

It is possible to submit a TX with a fees object containing a Coin with a nil amount. This results in a rather cryptic redacted panic response when the basic validation checks fee Coins for negative amounts.

This PR adds an additional check for nil to provide a friendlier error message.

* perf: Only do memory allocation when zero coin is found (backport cosmos#10339) (cosmos#10362)

* perf: Only do memory allocation when zero coin is found (cosmos#10339)

## Description

Closes: cosmos#10333

Added a loop that checks for zero coins before making any memory allocations. If no zero coins are found, just return the `coins` slice as is. If a zero coin is found, then allocate the new array, stop looking for the first zero, and restart the loop to "remove" the 0's.

* build(deps): bump github.com/tendermint/tendermint from 0.34.13 to 0.34.14 (backport cosmos#10357) (cosmos#10376)

* build(deps): bump github.com/tendermint/tendermint from 0.34.13 to 0.34.14 (cosmos#10357)

Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.13 to 0.34.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/tendermint/tendermint/releases">github.com/tendermint/tendermint's releases</a>.</em></p>
<blockquote>
<h2>0.34.14 (WARNING: BETA SOFTWARE)</h2>
<p><a href="https://github.com/tendermint/tendermint/blob/v0.34.14/CHANGELOG.md#v0.34.14">https://github.com/tendermint/tendermint/blob/v0.34.14/CHANGELOG.md#v0.34.14</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md">github.com/tendermint/tendermint's changelog</a>.</em></p>
<blockquote>
<h2>v0.34.14</h2>
<p>This release backports the <code>rollback</code> feature to allow recovery in the event of an incorrect app hash.</p>
<h3>FEATURES</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/tendermint/tendermint/pull/6982">#6982</a> The tendermint binary now has built-in suppport for running the end-to-end test application (with state sync support) (<a href="https://github.com/cmwaters"><code>@​cmwaters</code></a>).</li>
<li>[cli] <a href="https://github-redirect.dependabot.com/tendermint/tendermint/pull/7033">#7033</a> Add a <code>rollback</code> command to rollback to the previous tendermint state. This may be useful in the event of non-determinstic app hash or when reverting an upgrade. <a href="https://github.com/cmwaters"><code>@​cmwaters</code></a></li>
</ul>
<h3>IMPROVEMENTS</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/tendermint/tendermint/pull/7104">#7103</a> Remove IAVL dependency (backport of <a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/6550">#6550</a>) (<a href="https://github.com/cmwaters"><code>@​cmwaters</code></a>)</li>
</ul>
<h3>BUG FIXES</h3>
<ul>
<li><a href="https://github-redirect.dependabot.com/tendermint/tendermint/pull/7057">#7057</a> Import Postgres driver support for the psql indexer (<a href="https://github.com/creachadair"><code>@​creachadair</code></a>).</li>
<li>[ABCI] <a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7110">#7110</a> Revert &quot;change client to use multi-reader mutexes (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/6873">#6873</a>)&quot; (<a href="https://github.com/tychoish"><code>@​tychoish</code></a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/tendermint/tendermint/commit/85870def7b628effad73af942e638bbddf2ba8fd"><code>85870de</code></a> release: prepare changelog for 0.34.14 (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7105">#7105</a>)</li>
<li><a href="https://github.com/tendermint/tendermint/commit/ff2758b32e637b50734ad5ff1d0b24403af0deb2"><code>ff2758b</code></a> dep: remove IAVL dependency (backport <a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/6550">#6550</a>) (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7104">#7104</a>)</li>
<li><a href="https://github.com/tendermint/tendermint/commit/a82cb7dcda832b8c6475481bf404257a56aa2d18"><code>a82cb7d</code></a> Revert &quot;abci: change client to use multi-reader mutexes (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/6306">#6306</a>)&quot; (backport <a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7">#7</a>...</li>
<li><a href="https://github.com/tendermint/tendermint/commit/1dfb3451eaaa438067dadb6835e9aa948689f39e"><code>1dfb345</code></a> e2e: light nodes should use builtin abci app (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7095">#7095</a>) (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7096">#7096</a>)</li>
<li><a href="https://github.com/tendermint/tendermint/commit/9f13b9b083da0ec45a48e57d5a283afdf698ba5b"><code>9f13b9b</code></a> e2e: abci protocol should be consistent across networks (backport <a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7078">#7078</a>) (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7085">#7085</a>)</li>
<li><a href="https://github.com/tendermint/tendermint/commit/16ba782fa6549ea1e50a7fe7addb538ff15bf619"><code>16ba782</code></a> cli: allow node operator to rollback last state (backport <a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7033">#7033</a>) (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7080">#7080</a>)</li>
<li><a href="https://github.com/tendermint/tendermint/commit/474ed04273bade74df583c7bfdc63e6e1a70a919"><code>474ed04</code></a> Import Postgres driver support for the psql indexer (backport). (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7057">#7057</a>)</li>
<li><a href="https://github.com/tendermint/tendermint/commit/2d8287d0f70962cc1d7bda0250def18962abf282"><code>2d8287d</code></a> e2e: allow running of single node using the e2e app (backport) (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/7024">#7024</a>)</li>
<li><a href="https://github.com/tendermint/tendermint/commit/294a9695b4a768b4c8a9cb71c3562cdbff58e64c"><code>294a969</code></a> e2e: backport minor reliability improvements (<a href="https://github-redirect.dependabot.com/tendermint/tendermint/issues/6967">#6967</a>)</li>
<li>See full diff in <a href="https://github.com/tendermint/tendermint/compare/v0.34.13...v0.34.14">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/tendermint/tendermint&package-manager=go_modules&previous-version=0.34.13&new-version=0.34.14)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

* fix: unmarshalling issue with multisig keys in master (backport cosmos#10061) (cosmos#10113)

* fix: unmarshalling issue with multisig keys in master (cosmos#10061)

(cherry picked from commit 3d3bc7c)

# Conflicts:
#	CHANGELOG.md
#	crypto/keys/multisig/multisig_test.go

* fix conflicts

* fix conflicts

* Update crypto/keys/multisig/multisig_test.go

* Removed unused imports

* fix changelog

* Update CHANGELOG.md

* Fix TestLegacyMultisig test (cosmos#10275)

Co-authored-by: Henrik Aasted Sørensen <has@bitcraft.dk>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Co-authored-by: Mario Karagiorgas <salem8@gmail.com>

* fix: query account balance by ibc denom (backport cosmos#10394) (cosmos#10524)

* fix: query account balance by ibc denom (cosmos#10394)

<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

Closes: cosmos#10381

<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->

* chore: Iavl iterator (backport cosmos#10544) (cosmos#10546)

* chore: Iavl iterator (cosmos#10544)

<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->

## Description

Closes: cosmos#10335

This PR adds a custom version of cosmos/iavl(cosmos/iavl#440) that removes the usage of channel-based approach on iterating IAVL tree.

replaces cosmos#10404

* build(deps): Bump github.com/cosmos/iavl from 0.17.2 to 0.17.3 (backport cosmos#10654) (cosmos#10664)

* build(deps): Bump github.com/cosmos/iavl from 0.17.2 to 0.17.3 (cosmos#10654)

Bumps [github.com/cosmos/iavl](https://github.com/cosmos/iavl) from 0.17.2 to 0.17.3.
- [Release notes](https://github.com/cosmos/iavl/releases)
- [Changelog](https://github.com/cosmos/iavl/blob/v0.17.3/CHANGELOG.md)
- [Commits](cosmos/iavl@v0.17.2...v0.17.3)

* fix: Add Events to TxResponse (backport cosmos#10630) (cosmos#10644)

* fix: Add Events to TxResponse (cosmos#10630)

(cherry picked from commit c4bedf8)

# Conflicts:
#	CHANGELOG.md
#	go.sum
#	types/abci.pb.go
#	types/result.go

* Michael sucks

* Who Let the Bugs Out??

* Reinventing the wheel. Again.

* No changes made

Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>

* fix: bech32 address test to satisfy the specification (cosmos#10163) (cosmos#10164) (cosmos#10665)

## Description

Closes: cosmos#10163

<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->

* build(deps): Use self-maintained btcutil (cosmos#10082) (backport cosmos#10201) (cosmos#10622)

* build(deps): Use self-maintained btcutil (cosmos#10082) (cosmos#10201)

## Description

Closes: cosmos#10082

* chore: v0.42.11 changelog and release notes (cosmos#10695)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Henrik Aasted Sørensen <has@bitcraft.dk>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Co-authored-by: Mario Karagiorgas <salem8@gmail.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>

* chores: go mod tidy

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Ryan Christoffersen <12519942+ryanchristo@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: ValarDragon <dojha12@gmail.com>
Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es>
Co-authored-by: Carlos Rodriguez <crodveg@gmail.com>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
Co-authored-by: kitounliu <58184672+kitounliu@users.noreply.github.com>
Co-authored-by: kitty <jia.liu@fetch.ai>
Co-authored-by: Henrik Aasted Sørensen <has@bitcraft.dk>
Co-authored-by: Aleksandr Bezobchuk <aleks.bezobchuk@gmail.com>
Co-authored-by: Mario Karagiorgas <salem8@gmail.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Eengineer1 pushed a commit to cheqd/cosmos-sdk that referenced this pull request Aug 26, 2022
…) (backport cosmos#10026) (cosmos#10167)

* perf: Make CacheKV store interleaved iterator and insertion not O(n^2) (cosmos#10026)

(cherry picked from commit 28bf2c1)

* fix changelog conflict

* Update store.go

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Eengineer1 pushed a commit to cheqd/cosmos-sdk that referenced this pull request Aug 26, 2022
cosmos#10170)

* perf: Remove telemetry from wrappings of store (cosmos#10077)

## Description

Closes: cosmos#10072

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if cosmos#10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

(cherry picked from commit 78b151d)

# Conflicts:
#	CHANGELOG.md

* fix changelog

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
JeancarloBarrios pushed a commit to agoric-labs/cosmos-sdk that referenced this pull request Sep 28, 2024
…) (backport cosmos#10026) (cosmos#10167)

* perf: Make CacheKV store interleaved iterator and insertion not O(n^2) (cosmos#10026)

(cherry picked from commit 28bf2c1)

# Conflicts:
#	CHANGELOG.md
#	store/cachekv/store.go

* fix changelog conflict

* Update store.go

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
JeancarloBarrios pushed a commit to agoric-labs/cosmos-sdk that referenced this pull request Sep 28, 2024
cosmos#10170)

* perf: Remove telemetry from wrappings of store (cosmos#10077)

## Description

Closes: cosmos#10072

Significantly speeds up all the GasKvStore and CacheKVStore operations. Now Get/Set for these stores no longer even appears on my Osmosis benchmarks, saving ~8% of those benchmark's times. (Only one of the internal methods for setCacheValue appear -- will try to separately get a PR for reducing those memory allocations if cosmos#10026 is merged)

Talked to @alexanderbez about this on Discord, and he seemed in agreement with the approach of removing telemetry from these stores.

This does technically change telemetry, but I don't know if this is / should be considered a breaking change?

---

### 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...

- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [x] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [x] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification - is there something I should be updating?
- [x] reviewed "Files changed" and left comments if necessary
- [ ] 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](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)

(cherry picked from commit 78b151d)

# Conflicts:
#	CHANGELOG.md

* fix changelog

Co-authored-by: Dev Ojha <ValarDragon@users.noreply.github.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A:automerge Automatically merge PR once all prerequisites pass.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants