Background Transaction Generation#3021
Conversation
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Signed-off-by: Cody Littley <cody.littley@seinetwork.io>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3021 +/- ##
==========================================
- Coverage 58.39% 58.37% -0.02%
==========================================
Files 2080 2109 +29
Lines 171924 174801 +2877
==========================================
+ Hits 100396 102045 +1649
- Misses 62588 63733 +1145
- Partials 8940 9023 +83
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
|
||
| // This method should be called after a block is finished executing and finalized. | ||
| // Reports metrics about the block. | ||
| func (b *block) ReportBlockMetrcs() { |
| } | ||
|
|
||
| // Returns an iterator over the transactions in the block. | ||
| func (b *block) Iterator() iter.Seq[*transaction] { |
There was a problem hiding this comment.
is this function get called?
There was a problem hiding this comment.
I added this to avoid direct access to the block.transactions member variable, but forgot to actually use it. It is now used.
| EnableSuspension bool | ||
|
|
||
| // The capacity of the channel that holds blocks awaiting execution. | ||
| BlockChannelCapacity int |
There was a problem hiding this comment.
optional: adding BlockChannelCapacity to Validate()
|
|
||
| // Now that we are done generating initial data, it is thread safe to start the block builder. | ||
| // (dataGenerator is not thread safe, and is used both for initial setup and for transaction generation) | ||
| c.blockBuilder.Start() |
There was a problem hiding this comment.
not sure if this could. a problem, when blockBuilder.Start() is called. the blocker builder thread owns dataGenerator. but during suspend(), the main groutoutine reads from it, introduces concurrent access.
There was a problem hiding this comment.
Good catch. Fixed.
| } | ||
|
|
||
| // Returns an iterator over the transactions in the block. | ||
| func (b *block) Iterator() iter.Seq[*transaction] { |
## Describe your changes and provide context Moved transaction generation off of the main benchmark thread for the cryptosim benchmark. ## Testing performed to validate your change Tested locally. --------- Signed-off-by: Cody Littley <cody.littley@seinetwork.io> Co-authored-by: Cody Littley <cody.littley@seinetwork.io>
## Summary The squash-merge of #3039 (`feat(flatkv): add read-only LoadVersion for state sync`) inadvertently reverted changes from 5 previously-merged PRs. The `yiren/flatkv-readonly` branch had accumulated stale versions of files through merge-from-main commits, and when the final squash-merge landed, those stale versions overwrote the newer code on `main`. ### PRs reverted by #3039 and restored in this PR | PR | Title | Key changes lost | |---|---|---| | **#2810** | fix(giga): check whether txs follow Giga ordering | `firstCosmosSeen` tx ordering check, `len(evmEntries) > 0` / `len(v2Entries) > 0` guards in `ProcessTXsWithOCCGiga` | | **#3035** | Add receiptdb config option in app.toml | `ReceiptStoreConfig` in app.toml, `readReceiptStoreConfig()`, `BackendTypeName()`, receipt config tests | | **#3043** | Add config to enable lattice hash | `EnableLatticeHash` config, composite store lattice hash support | | **#3021** | Background Transaction Generation | `block.go`, `block_builder.go` for cryptosim benchmark | | **#3046** | Add console logger and fix memiavl config for benchmark | `BlocksPerCommit=1`, `SnapshotInterval=1000`, `SnapshotMinTimeInterval=60` | ### Conflict resolutions Since several PRs landed after #3039 (notably #3050 slog migration, #3053 flaky test fix, #3062 admin service), cherry-picks required manual conflict resolution: - **`app/app.go`** (#2810): Kept #2810's structural changes, used `logger.Error` (from #3050) instead of `ctx.Logger().Error` - **`cmd/seid/cmd/app_config.go`** (#3035): Kept both `ReceiptStore` (from #3035) and `Admin` (from #3062) - **`sei-db/ledger_db/receipt/receipt_store.go`** (#3035): Restored `BackendTypeName` but dropped logger param (superseded by #3050 slog) - **`sei-db/ledger_db/receipt/parquet_store_test.go`** (#3035): Kept #3053's deterministic pruning test fix - **`sei-db/state_db/sc/composite/store_test.go`** (#3043): Merged all three needed imports - **`sei-db/common/logger/logger.go`** (#3046): Kept deletion from #3050; `consoleLogger` is no longer needed with slog - **`sei-db/state_db/bench/wrappers/db_implementations.go`** (#3046): Kept #3050's no-logger-param API --------- Signed-off-by: Cody Littley <cody.littley@seinetwork.io> Co-authored-by: Cody Littley <56973212+cody-littley@users.noreply.github.com> Co-authored-by: Cody Littley <cody.littley@seinetwork.io>
## Describe your changes and provide context Moved transaction generation off of the main benchmark thread for the cryptosim benchmark. ## Testing performed to validate your change Tested locally. --------- Signed-off-by: Cody Littley <cody.littley@seinetwork.io> Co-authored-by: Cody Littley <cody.littley@seinetwork.io>
Describe your changes and provide context
Moved transaction generation off of the main benchmark thread for the cryptosim benchmark.
Testing performed to validate your change
Tested locally.