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

SeiDB+OCC for benchmark #351

Open
wants to merge 156 commits into
base: main
Choose a base branch
from
Open

SeiDB+OCC for benchmark #351

wants to merge 156 commits into from

Conversation

yzang2019
Copy link
Collaborator

Describe your changes and provide context

Testing performed to validate your change

Yiming Zang and others added 30 commits July 26, 2023 14:31
## Describe your changes and provide context
This adds some comments with some useful code pointers for existing
logic and discussing future OCC work

## Testing performed to validate your change
NA
## Describe your changes and provide context
Add multiversion store data structures file, and implement the
multiversioned item

## Testing performed to validate your change
Added unit tests to verify behavior
## Describe your changes and provide context
This adds the incarnation field to the multiversion item data structure.

## Testing performed to validate your change
updated unit tests
## Describe your changes and provide context
This implements the multiversion with basic functionality, but still
needs additional work to implement the iterator functionality and/or
persisting readsets for validation

## Testing performed to validate your change
Added unit tests for basic multiversion store
## Describe your changes and provide context
- `ConcurrencyWorkers` represents the number of workers to use for
concurrent transactions
- since concurrrency-workers is a baseapp-level setting, implementations
(like sei-chain) shouldn't have to pass it (but can)
- it defaults to 10 if not set (via cli default value)
- it defaults to 10 in app.toml only if that file is being created (and
doesn't exist)
- if explicitly set to zero on command line, it will override with the
default (for safety)
- cli takes precedence over the config file
- no one has to do anything to get it to be 10 (no config changes no
sei-chain changes required (aside from new cosmos version))

## Testing performed to validate your change
- Unit Tests for setting the value
- Manually testing scenarios with sei-chain
## Describe your changes and provide context
This adds in functionality to write the latest multiversion values to
another store (to be used for writing to parent after transaction
execution), and also adds in helpers for writeset management such as
setting, invalidating, and setting estimated writesets.

## Testing performed to validate your change
Unit testing for added functionality
## Describe your changes and provide context
- `sei-cosmos` will receive a list of transactions, so that sei-chain
does not need to hold the logic for OCC
- This will make the logic easier to test, as sei-cosmos will be fairly
self-contained
- Types can be extended within a tx and within request/response

Example interaction:
<img
src="https://github.com/sei-protocol/sei-cosmos/assets/6051744/58c9a263-7bc6-4ede-83ab-5e34794510b1"
width=50% height=50%>

## Testing performed to validate your change
- This is a skeleton for a batch interface
## Describe your changes and provide context
This implements an mvkv store that will manage access from a transaction
execution to the underlying multiversion store and underlying parent
store if the multiversion store doesn't have that key. It will first
serve any reads from its own writeset and readset, but if it does have
to fall through to multiversion store or parent store, it will add those
values to the readset.

## Testing performed to validate your change
Unit tests
…ore (#330)

## Describe your changes and provide context
This adds in validation for transaction state to multiversion store, and
implements readset validation for it as well.

## Testing performed to validate your change
Unit Test
udpatil and others added 30 commits November 16, 2023 16:41
This reverts commit efdac0e.

Revert "add logs"

This reverts commit dc36ad5.

Revert "add logs"

This reverts commit 33e7242.

Revert "add logs"

This reverts commit de87d52.

Revert "bump go mod"

This reverts commit a7571ae.

Revert "add logs"

This reverts commit c48b8ad.

Revert "add logs"

This reverts commit f616719.

Revert "add logs"

This reverts commit 922837b.

Revert "add logs"

This reverts commit 5397208.

Revert "add logs"

This reverts commit ad48a78.

Revert "add logs"

This reverts commit 2de779c.

Revert "add logger"

This reverts commit 38380a8.

Revert "add logger"

This reverts commit b7ffe7d.

Revert "add log"

This reverts commit d8fe722.

Revert "add log"

This reverts commit 247cac3.

Revert "add log"

This reverts commit 744428f.

Revert "add log"

This reverts commit 961d567.

Revert "add log"

This reverts commit faa45e9.

Revert "add log"

This reverts commit 8b5cac1.
## Describe your changes and provide context
- limit number of workers to a shared worker pool (avoids one-off
goroutines)

## Testing performed to validate your change
- Tests pass
## Describe your changes and provide context
- validations that wait on other validations do need their own routine
- validations have their own worker pool (isolated from executions)

## Testing performed to validate your change
- reproduced with test (where tasks > workers)
This reverts commit 1c5a372.

## Describe your changes and provide context

## Testing performed to validate your change
## Describe your changes and provide context
Add migration handler to add new disable seqno parameter to chain. Note
that i verified that we already use default values so we can just set
the params to default instead of maintaining authParamsV1 and V2
## Testing performed to validate your change
- unit tests
- upgraded local chain, ensure that bank sends work
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.

4 participants