Skip to content

Releases: osmosis-labs/cosmos-sdk

v0.45.0x-osmo-v7.7

12 Apr 15:40
b375ea0
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.45.0x-osmo-v7.6...v0.45.0x-osmo-v7.7

v0.45.0x-osmo-v7.6

27 Mar 21:25
9f71a99
Compare
Choose a tag to compare

What's Changed

  • refactor: Fixes the go race tests by @ValarDragon in #158
  • fix: test-race (00) by @p0mvn in #160
  • chore: upgrade iavl to v0.17.3-osmo-v7 with lowered fast node cache size by @p0mvn in #161

v0.45.0x-osmo-v7.5

26 Mar 15:51
d53f1dd
Compare
Choose a tag to compare
v0.45.0x-osmo-v7.5 Pre-release
Pre-release

What's Changed

Full Changelog: v0.45.0x-osmo-v7.3...v0.45.0x-osmo-v7.5

v0.45.0x-osmo-v7.3

09 Mar 19:41
8be66e2
Compare
Choose a tag to compare
v0.45.0x-osmo-v7.3 Pre-release
Pre-release

What's Changed

  • upgrade iavl to v0.17.3-osmo-v5 with concurrent map write fix by @p0mvn in #135

v0.45.0x-osmo-v7.1

03 Mar 03:16
7f1c77a
Compare
Choose a tag to compare
  • fix bug related to old height export in IAVL: fix bug related to old height export

  • IAVL release: v0.17.3-osmo-v4

v0.45.0x-osmo-v7.2

20 Feb 18:29
1b4ae82
Compare
Choose a tag to compare
v0.45.0x-osmo-v7.2 Pre-release
Pre-release

The main focus of this release is stability improvements with the IAVL patch of v0.44.3x-osmo-v5.1. The big points are:

  • Fixes the "version X was already saved to a different hash" and "insufficient funds" bugs nodes were sometimes seeing after crashes.
  • Reduce the RAM overhead during the initial IAVL migration. Node operators should still have 32GB of RAM for all of their mainnet nodes.
  • Improving the log messages during migrations

The bugs people were seeing for nodes being saved to a different hash, etc. happen after restoring the node post-crash during commit (the crash could be caused by something else). The bug on restart stems from the long-standing issue that SDK commits are actually not-atomic. This manifested in a failure to flush the latest height when an error during commit occurs, causing the state invalidities on restart. We mitigated the non-atomicity problem by flushing the metadata about the stores that successfully committed a new height. As a result, on restart, the SDK now knows which stores/modules are already on the newly committed height.

This [v0.45.0x-osmo-v7.2] release is used on v7.x in Osmosis. It has identical fast-storage changes to the v0.44.3x-osmo-v5.2 (used in v6.x).

v0.44.3x-osmo-v5.2

20 Feb 05:38
a117f82
Compare
Choose a tag to compare

The main focus of this release is stability improvements with the IAVL patch of v0.44.3x-osmo-v5.1. The big points are:

  • Fixes the "version X was already saved to a different hash" and "insufficient funds" bugs nodes were sometimes seeing after crashes.
  • Reduce the RAM overhead during the initial IAVL migration. Node operators should still have 32GB of RAM for all of their mainnet nodes.
  • Improving the log messages during migrations

The bugs people were seeing for nodes being saved to a different hash, etc. happen after restoring the node post-crash during commit (the crash could be caused by something else). The bug on restart stems from the long-standing issue that SDK commits are actually not-atomic. This manifested in a failure to flush the latest height when an error during commit occurs, causing the state invalidities on restart. We mitigated the non-atomicity problem by flushing the metadata about the stores that successfully committed a new height. As a result, on restart, the SDK now knows which stores/modules are already on the newly committed height.

IAVL - v0.17.3-osmo-v3

v0.45.0x-osmo-v7-fast.1

13 Feb 05:35
Compare
Choose a tag to compare
Pre-release

This is a pre-release for upgrading v0.45.0x-osmo-v7 with fast storage

v0.44.3x-osmo-v5.1 - Fast storage (IAVL upgrade)

11 Feb 19:03
cfeeeb1
Compare
Choose a tag to compare

Background
Historically IAVL has had a very slow performance during state machine execution, and for responding to queries to live state. This release speeds up these routines by an order of magnitude, alleviating large amounts of pressure from all users of the IAVL database.

Details

This release introduces an auxiliary fast storage system to IAVL, which represents a copy of the latest state much more amenable to efficient querying and iteration.

Prior to this release, all data gets & iterations suffered two significant performance drawdowns:

  • Every get/iteration is forced to walk the tree structure
  • Every node (including leaves) is stored on disk, with its key being a SHA256 hash of something. Leaves were Hash(logical key), internal nodes were indexed by their Merkle tree inner node hash as well. This breaks data locality and makes every get that should be in RAM / CPU caches instead be a random leveldb file open.

The fast storage nodes are instead indexed by the logical key on the disk. This allows us to preserve data locality for the latest state, significantly improving iterations and queries. (Depending on the particular benchmark, between 5-30x improvements) This implementation introduces a negligible overhead for writes.

Downgrade-re-upgrade protection
We introduced a downgrade and re-upgrade protection where we guard for potential downgrades of iavl and the subsequent enablement of the fast storage again. This is done so by storing the metadata about the current version of the storage and the latest live state stored.

v0.44.3x-osmo-v5-fast.4.1

11 Feb 04:50
07d6cfc
Compare
Choose a tag to compare
Pre-release

This is a pre-release to test fast iavl.

Changes since the last pre-release:

  • Fixed log for upgrading to fast iavl