Skip to content

Commit 5e05124

Browse files
yihuangmmsqe
andauthored
perf: optimize block-stm secondary store memory allocation (#25767)
Co-authored-by: mmsqe <tqd0800210105@gmail.com>
1 parent 479e219 commit 5e05124

File tree

40 files changed

+563
-239
lines changed

40 files changed

+563
-239
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
9898
* (baseapp) [#25862](https://github.com/cosmos/cosmos-sdk/pull/25862) Skip running validateBasic for rechecking txs. (Backport of https://github.com/cosmos/cosmos-sdk/pull/20208).
9999
* (blockstm) [25883](https://github.com/cosmos/cosmos-sdk/pull/25883) Re-use decoded tx object in pre-estimates.
100100
* (blockstm) [#25788](https://github.com/cosmos/cosmos-sdk/pull/25788) Only validate transactions that's executed at lease once.
101+
* (blockstm) [#25767](https://github.com/cosmos/cosmos-sdk/pull/25767) Optimize block-stm MVMemory with bitmap index.
101102

102103
### Bug Fixes
103104

client/v2/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ require (
3131
github.com/99designs/keyring v1.2.2 // indirect
3232
github.com/DataDog/datadog-go v3.2.0+incompatible // indirect
3333
github.com/DataDog/zstd v1.5.7 // indirect
34+
github.com/RoaringBitmap/roaring/v2 v2.14.4 // indirect
3435
github.com/benbjohnson/clock v1.3.5 // indirect
3536
github.com/beorn7/perks v1.0.1 // indirect
3637
github.com/bgentry/speakeasy v0.2.0 // indirect
38+
github.com/bits-and-blooms/bitset v1.24.4 // indirect
3739
github.com/bytedance/gopkg v0.1.3 // indirect
3840
github.com/bytedance/sonic v1.15.0 // indirect
3941
github.com/bytedance/sonic/loader v0.5.0 // indirect
@@ -141,6 +143,7 @@ require (
141143
github.com/minio/highwayhash v1.0.3 // indirect
142144
github.com/minio/sha256-simd v1.0.1 // indirect
143145
github.com/mr-tron/base58 v1.2.0 // indirect
146+
github.com/mschoch/smat v0.2.0 // indirect
144147
github.com/mtibben/percent v0.2.1 // indirect
145148
github.com/multiformats/go-base32 v0.1.0 // indirect
146149
github.com/multiformats/go-base36 v0.2.0 // indirect

client/v2/go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo
3434
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
3535
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw=
3636
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
37+
github.com/RoaringBitmap/roaring/v2 v2.14.4 h1:4aKySrrg9G/5oRtJ3TrZLObVqxgQ9f1znCRBwEwjuVw=
38+
github.com/RoaringBitmap/roaring/v2 v2.14.4/go.mod h1:oMvV6omPWr+2ifRdeZvVJyaz+aoEUopyv5iH0u/+wbY=
3739
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
3840
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
3941
github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE=
@@ -551,6 +553,8 @@ github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJ
551553
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
552554
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
553555
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
556+
github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
557+
github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
554558
github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
555559
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
556560
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=

enterprise/group/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ require (
3636
github.com/99designs/keyring v1.2.1 // indirect
3737
github.com/DataDog/datadog-go v3.2.0+incompatible // indirect
3838
github.com/DataDog/zstd v1.5.7 // indirect
39+
github.com/RoaringBitmap/roaring/v2 v2.14.4 // indirect
3940
github.com/benbjohnson/clock v1.3.5 // indirect
4041
github.com/beorn7/perks v1.0.1 // indirect
4142
github.com/bgentry/speakeasy v0.2.0 // indirect
43+
github.com/bits-and-blooms/bitset v1.24.4 // indirect
4244
github.com/bytedance/gopkg v0.1.3 // indirect
4345
github.com/bytedance/sonic v1.15.0 // indirect
4446
github.com/bytedance/sonic/loader v0.5.0 // indirect
@@ -142,6 +144,7 @@ require (
142144
github.com/minio/highwayhash v1.0.3 // indirect
143145
github.com/minio/sha256-simd v1.0.1 // indirect
144146
github.com/mr-tron/base58 v1.2.0 // indirect
147+
github.com/mschoch/smat v0.2.0 // indirect
145148
github.com/mtibben/percent v0.2.1 // indirect
146149
github.com/multiformats/go-base32 v0.1.0 // indirect
147150
github.com/multiformats/go-base36 v0.2.0 // indirect

enterprise/group/go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo
3232
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
3333
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw=
3434
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
35+
github.com/RoaringBitmap/roaring/v2 v2.14.4 h1:4aKySrrg9G/5oRtJ3TrZLObVqxgQ9f1znCRBwEwjuVw=
36+
github.com/RoaringBitmap/roaring/v2 v2.14.4/go.mod h1:oMvV6omPWr+2ifRdeZvVJyaz+aoEUopyv5iH0u/+wbY=
3537
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
3638
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
3739
github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE=
@@ -552,6 +554,8 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
552554
github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
553555
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
554556
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
557+
github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
558+
github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
555559
github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs=
556560
github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns=
557561
github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE=

enterprise/group/simapp/go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ require (
3131
github.com/99designs/keyring v1.2.2 // indirect
3232
github.com/DataDog/datadog-go v3.2.0+incompatible // indirect
3333
github.com/DataDog/zstd v1.5.7 // indirect
34+
github.com/RoaringBitmap/roaring/v2 v2.14.4 // indirect
3435
github.com/benbjohnson/clock v1.3.5 // indirect
3536
github.com/beorn7/perks v1.0.1 // indirect
3637
github.com/bgentry/speakeasy v0.2.0 // indirect
@@ -146,6 +147,7 @@ require (
146147
github.com/minio/highwayhash v1.0.3 // indirect
147148
github.com/minio/sha256-simd v1.0.1 // indirect
148149
github.com/mr-tron/base58 v1.2.0 // indirect
150+
github.com/mschoch/smat v0.2.0 // indirect
149151
github.com/mtibben/percent v0.2.1 // indirect
150152
github.com/multiformats/go-base32 v0.1.0 // indirect
151153
github.com/multiformats/go-base36 v0.2.0 // indirect

enterprise/group/simapp/go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo
3434
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
3535
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw=
3636
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
37+
github.com/RoaringBitmap/roaring/v2 v2.14.4 h1:4aKySrrg9G/5oRtJ3TrZLObVqxgQ9f1znCRBwEwjuVw=
38+
github.com/RoaringBitmap/roaring/v2 v2.14.4/go.mod h1:oMvV6omPWr+2ifRdeZvVJyaz+aoEUopyv5iH0u/+wbY=
3739
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
3840
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
3941
github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE=
@@ -562,6 +564,8 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
562564
github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
563565
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
564566
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
567+
github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
568+
github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
565569
github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs=
566570
github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns=
567571
github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE=

enterprise/group/tests/systemtests/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ require (
2323
github.com/99designs/keyring v1.2.1 // indirect
2424
github.com/DataDog/datadog-go v3.2.0+incompatible // indirect
2525
github.com/DataDog/zstd v1.5.7 // indirect
26+
github.com/RoaringBitmap/roaring/v2 v2.14.4 // indirect
2627
github.com/benbjohnson/clock v1.3.5 // indirect
2728
github.com/beorn7/perks v1.0.1 // indirect
2829
github.com/bgentry/speakeasy v0.2.0 // indirect
30+
github.com/bits-and-blooms/bitset v1.24.4 // indirect
2931
github.com/bytedance/gopkg v0.1.3 // indirect
3032
github.com/bytedance/sonic v1.15.0 // indirect
3133
github.com/bytedance/sonic/loader v0.5.0 // indirect
@@ -135,6 +137,7 @@ require (
135137
github.com/minio/highwayhash v1.0.3 // indirect
136138
github.com/minio/sha256-simd v1.0.1 // indirect
137139
github.com/mr-tron/base58 v1.2.0 // indirect
140+
github.com/mschoch/smat v0.2.0 // indirect
138141
github.com/mtibben/percent v0.2.1 // indirect
139142
github.com/multiformats/go-base32 v0.1.0 // indirect
140143
github.com/multiformats/go-base36 v0.2.0 // indirect

enterprise/group/tests/systemtests/go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo
3434
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
3535
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw=
3636
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk=
37+
github.com/RoaringBitmap/roaring/v2 v2.14.4 h1:4aKySrrg9G/5oRtJ3TrZLObVqxgQ9f1znCRBwEwjuVw=
38+
github.com/RoaringBitmap/roaring/v2 v2.14.4/go.mod h1:oMvV6omPWr+2ifRdeZvVJyaz+aoEUopyv5iH0u/+wbY=
3739
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
3840
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
3941
github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE=
@@ -552,6 +554,8 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
552554
github.com/mr-tron/base58 v1.1.2/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
553555
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
554556
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
557+
github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM=
558+
github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw=
555559
github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs=
556560
github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns=
557561
github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE=

enterprise/poa/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ require (
3131
github.com/99designs/keyring v1.2.1 // indirect
3232
github.com/DataDog/datadog-go v3.2.0+incompatible // indirect
3333
github.com/DataDog/zstd v1.5.7 // indirect
34+
github.com/RoaringBitmap/roaring/v2 v2.14.4 // indirect
3435
github.com/benbjohnson/clock v1.3.5 // indirect
3536
github.com/beorn7/perks v1.0.1 // indirect
3637
github.com/bgentry/speakeasy v0.2.0 // indirect
38+
github.com/bits-and-blooms/bitset v1.24.4 // indirect
3739
github.com/bytedance/gopkg v0.1.3 // indirect
3840
github.com/bytedance/sonic v1.15.0 // indirect
3941
github.com/bytedance/sonic/loader v0.5.0 // indirect
@@ -137,6 +139,7 @@ require (
137139
github.com/minio/highwayhash v1.0.3 // indirect
138140
github.com/minio/sha256-simd v1.0.1 // indirect
139141
github.com/mr-tron/base58 v1.2.0 // indirect
142+
github.com/mschoch/smat v0.2.0 // indirect
140143
github.com/mtibben/percent v0.2.1 // indirect
141144
github.com/multiformats/go-base32 v0.1.0 // indirect
142145
github.com/multiformats/go-base36 v0.2.0 // indirect

0 commit comments

Comments
 (0)