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

Oracle parallel #334

Merged
merged 20 commits into from
Oct 26, 2022
Merged

Oracle parallel #334

merged 20 commits into from
Oct 26, 2022

Conversation

udpatil
Copy link
Collaborator

@udpatil udpatil commented Oct 21, 2022

Describe your changes and provide context

This contains the implementation for oracle vote parallelization via aclmapping dynamic generators. Additionally, this PR is stacked on top of a cherry picked PR that previously modified oracle so as to apply the parallelizatin changes to the latest oracle code.
Also added a makefile target to build loadtest for faster development

Testing performed to validate your change

Tested using loadtest cluster, and also added unit tests for the parallelization dynamic generators to validate the access operations to ensure that they can't be unknowingly changed to violate the validation steps.

@udpatil udpatil marked this pull request as ready for review October 25, 2022 14:32
go.mod Outdated
@@ -131,7 +131,7 @@ require (
)

replace (
github.com/cosmos/cosmos-sdk => github.com/sei-protocol/sei-cosmos v0.1.176
github.com/cosmos/cosmos-sdk => ../sei-cosmos //github.com/sei-protocol/sei-cosmos v0.1.193
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

reminder to remove local dep

for i := 0; i < int(config.Rounds); i++ {
fmt.Printf("Preparing %d-th round\n", i)

wg := &sync.WaitGroup{}
var senders []func()
workgroups = append(workgroups, wg)
if config.MessageType != "none" {
Copy link
Contributor

Choose a reason for hiding this comment

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

whats this check for?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I added a "none" type so that I could run ONLY oracle txs on the cluster, if we don't think we want to keep it I can remove it

Comment on lines 125 to 138
for _, valKey := range valKeys {
// generate oracle tx
msg := generateOracleMessage(valKey)
txBuilder := TestConfig.TxConfig.NewTxBuilder()
_ = txBuilder.SetMsgs(msg)
seqDelta := uint64(i)
mode := typestx.BroadcastMode_BROADCAST_MODE_SYNC
sender := SendTx(valKey, &txBuilder, mode, seqDelta, *c)
wg.Add(1)
senders = append(senders, func() {
defer wg.Done()
sender()
})
}
Copy link
Contributor

Choose a reason for hiding this comment

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

kind of a nit but it seems like we have multiple things happening in preparing round now, it would be nice if they're in separate methods

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

yeah good point, I'll make a helper fn

Comment on lines -48 to -51
case *oracletypes.MsgAggregateExchangeRatePrevote:
feederAddr, _ := sdk.AccAddressFromBech32(m.Feeder)
valAddr, _ := sdk.ValAddressFromBech32(m.Validator)
deps = append(deps, aclutils.GetOracleReadAccessOpsForValAndFeeder(feederAddr, valAddr)...)
Copy link
Contributor

Choose a reason for hiding this comment

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

is this part of the cherry-picked changes?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

yup, it removed the prevote and combined vote from oracle

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

well, this exact change wasn't cherry picked, but I removed this to match the removal in the cherry picked section

Copy link
Contributor

@BrandonWeng BrandonWeng left a comment

Choose a reason for hiding this comment

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

lgtm with non-blocking nits

@udpatil udpatil merged commit e37b609 into 2.0.0beta Oct 26, 2022
@udpatil udpatil deleted the oracle-parallel branch October 26, 2022 16:03
udpatil added a commit that referenced this pull request Oct 28, 2022
* [oracle] Remove oracle prevote (#249)

* [oracle] Remove oracle prevote

* lint

* remove prevote from store

* [acl] Add oracle parallelization dependencies

* [loadtest] Add oracle voting to loadtest

* go mod tidy

* modified key import

* adjust loadtest

* remove none msg type

* update config

* add non message type

* add validation unit tests for oracle mapping

* refactor loadtest and use new sei-cosmos tag

* fix loadtest config

* add loadtest to makefile

* fix

* fix tabs

* lint

* go mod tidy

* refactor loadtest to separate function

* fix

* fix refactor
udpatil added a commit that referenced this pull request Oct 28, 2022
* [oracle] Remove oracle prevote (#249)

* [oracle] Remove oracle prevote

* lint

* remove prevote from store

* [acl] Add oracle parallelization dependencies

* [loadtest] Add oracle voting to loadtest

* go mod tidy

* modified key import

* adjust loadtest

* remove none msg type

* update config

* add non message type

* add validation unit tests for oracle mapping

* refactor loadtest and use new sei-cosmos tag

* fix loadtest config

* add loadtest to makefile

* fix

* fix tabs

* lint

* go mod tidy

* refactor loadtest to separate function

* fix

* fix refactor
udpatil added a commit that referenced this pull request Nov 1, 2022
* [oracle] Remove oracle prevote (#249)

* [oracle] Remove oracle prevote

* lint

* remove prevote from store

* [acl] Add oracle parallelization dependencies

* [loadtest] Add oracle voting to loadtest

* go mod tidy

* modified key import

* adjust loadtest

* remove none msg type

* update config

* add non message type

* add validation unit tests for oracle mapping

* refactor loadtest and use new sei-cosmos tag

* fix loadtest config

* add loadtest to makefile

* fix

* fix tabs

* lint

* go mod tidy

* refactor loadtest to separate function

* fix

* fix refactor
udpatil added a commit that referenced this pull request Nov 1, 2022
* [oracle] Remove oracle prevote (#249)

* [oracle] Remove oracle prevote

* lint

* remove prevote from store

* [acl] Add oracle parallelization dependencies

* [loadtest] Add oracle voting to loadtest

* go mod tidy

* modified key import

* adjust loadtest

* remove none msg type

* update config

* add non message type

* add validation unit tests for oracle mapping

* refactor loadtest and use new sei-cosmos tag

* fix loadtest config

* add loadtest to makefile

* fix

* fix tabs

* lint

* go mod tidy

* refactor loadtest to separate function

* fix

* fix refactor
udpatil added a commit that referenced this pull request Nov 1, 2022
udpatil added a commit that referenced this pull request Nov 1, 2022
* Revert "Update Antehandler resource depedencies  (#354)"

This reverts commit 6c672fb.

* Revert "update staking validation identifier (#353)"

This reverts commit 8a17c26.

* Revert "Update Oracle Parallel Tx Resource Identifiers  (#351)"

This reverts commit c9229ab.

* Revert "Update IdentifierTemplate for TokenFactory  (#350)"

This reverts commit e81fc93.

* Revert "[loadtest] Loadtest fixes"

This reverts commit 68bfab5.

* Revert "fix unit tests"

This reverts commit 49eb809.

* Revert "Fix Bank Send Unit Tests  (#348)"

This reverts commit 9c11837.

* Revert "integrate with sei-cosmos changes (#347)"

This reverts commit e1b1790.

* Revert "Validate Concurrent Messages + Update BankSend  (#345)"

This reverts commit e4d3176.

* Revert "Add concurrency for BurnMsg and MintMsg (#331)"

This reverts commit 4a5cff0.

* Revert "Ezhu/granularize staking resources (#343)"

This reverts commit 90e288c.

* Revert "Oracle parallel (#334)"

This reverts commit 67c0db3.

* Revert "Ezhu/staking dep gen mappings v2 rebase (#338)"

This reverts commit 1324183.

* Revert "Refactor Loadtest script (#336)"

This reverts commit c8b83c7.

* Revert "Optimize genesis account creation script (#320)"

This reverts commit a0c0306.

* Revert "Wasm gov (#316)"

This reverts commit c3b421b.

* Revert "Lazy Deposit All Module Accounts During EndBlock (#313)"

This reverts commit 5ad4d9b.

* Revert "Wasm signal (#305)"

This reverts commit 206f2bb.

* Revert "Add dependencies for ante handlers that read/write accounts (#314)"

This reverts commit 5d39f90.

* Revert "Add Gasless decorator back and remove CountTxDecorator  (#311)"

This reverts commit 93fa4bd.

* Revert "Branch another cache for all transactions (#309)"

This reverts commit c2ce1ed.

* Revert "Add msg send dynamic access ops (#303)"

This reverts commit 2c5f14e.

* Revert "[ante] Add ante dep generator default behavior (#294)"

This reverts commit 0ada1db.

* Revert "Add more parallel TX metrics (#296)"

This reverts commit 567ffd9.

* Revert "Add aclmapping options and mapping folder (#287)"

This reverts commit c9522a5.

* Revert "Bump sei-cosmos and sei-tendermint for 2.0.0beta (#293)"

This reverts commit d9254b6.

* Revert "Cherry-pick loadtesting changes and make a fix for parallel tx (#288)"

This reverts commit 255fec9.

* Revert "[app] refactored graph into acl module (#286)"

This reverts commit 9b2d204.

* Revert "Add gov proposal handler for acl (#277)"

This reverts commit bbb5a50.

* Revert "Fix for DAG building switch cases (#282)"

This reverts commit 9eebc8e.

* Revert "Optimize signals (#280)"

This reverts commit fd9a3b6.

* Revert "[app] Add behavior to process blocks with gov txs sync (#276)"

This reverts commit ea2a906.

* Revert "[graph] Move metric to dag builder helper (#275)"

This reverts commit c530c02.

* Revert "Fixes for parallel TX and metrics (#272)"

This reverts commit 30207e7.

* Revert "[graph] Add resource hierarchy to dependency graph (#268)"

This reverts commit da7c070.

* Revert "Revert "Parallel TX Synchrnous Testing""

This reverts commit f343740.

* Revert "Parallel TX Synchrnous Testing"

This reverts commit b95b44c.

* Revert "Dag optimization (#263)"

This reverts commit ac3fdbf.

* Revert "Create Channels from DAG (#261)"

This reverts commit 35b9cf4.

* Revert "[accesscontrol] Add dependency dag (#258)"

This reverts commit 6721845.

* Revert "Register accesscontrol module (#257)"

This reverts commit 3e34d34.
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.

2 participants