-
Notifications
You must be signed in to change notification settings - Fork 39
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
Create DB Migrator and Allow use of Rocks DB and Badger DB #604
Conversation
* Add iterator as a feature to wasm
…all those args around all the time.
…, so make sure the value being set is never nil.
Codecov Report
@@ Coverage Diff @@
## main #604 +/- ##
==========================================
- Coverage 56.75% 56.16% -0.59%
==========================================
Files 177 179 +2
Lines 21166 21805 +639
==========================================
+ Hits 12012 12247 +235
- Misses 8243 8639 +396
- Partials 911 919 +8
|
* Change go.mod to use wasmd fork to support old address length * Linked issue
* adding upgrade handler indigo.
# Conflicts: # CHANGELOG.md # Makefile # app/upgrades.go # go.sum
…rable changes (e.g. from a log_level flag or some env var or something).
… and allow the control of those through env vars prefixed with DBM. This is so that the log_level and log_format config values aren't accidentally changed when updating the config for the db value. It also makes it so that the dbmigrate utility doesn't use the values from the config files, which are designed for a daemon rather than a one-off program. Basically, if the config has log_level = error, I still want dbmigrate to output what it's doing. But I also want to allow control of the output of dbmigrate.
…to start failing the same way as releases did.
# Conflicts: # CHANGELOG.md
# Conflicts: # .github/workflows/release.yml # .github/workflows/test.yml # go.sum
…into dwedul/rocksdb
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wasn't able to get rocksdb to build right on my ancient laptop but the alternate database migration support and badgerdb all worked perfectly.
…only run the detectdb cleveldb test if that tag was given.
…b and cleveldb. It seems to sometimes matter in a way that's tough to test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Its a bit of a concern that "you can always open a cleveldb using goleveldb, not the vice versa" ... there were many goleveldb users that had to switch to cleveldb in the 1.8.0 upgrade to fix the concurrency issues...
Yeah., I wonder if it's a mac vs linux thing or something. On my mac, I ran into issues where I'd Maybe a followup is flag to indicate which to prefer to use for reading. We can't just provide a "read as" flag because not all dbs have to be the same type. But when it comes down to the choice between goleveldb and cleveldb, maybe it's better to default to one and have a flag to override that default. The way I've got it now, though, when it's down to either goleveldb or cleveldb, it will actually try to open the db and read a few entries. But I don't like that because the function to open it will create it if it doesn't exist. That can cause problems if, for example, the db is actually rocksdb, and you're trying to open it as a leveldb. At one point, I was kind of cheesing the cleveldb and goleveldb detection tests by just manipulating the |
Description
closes: #702
closes: #696
This PR does several things:
provenanced
to be built to support BadgerDB.provenanced
to be built to support RocksDB, but doesn't include it by default due to reliance on a shared library on the user's system (similar tocleveldb
).make rocksdb
to build and install the rocksdb shared library.make cleveldb
to build and install the cleveldb shared library.make build-dbmigrate
to builddbmigrate
. It is a utility that can be used to convert a Provenance node's databases to a different backend.docs/Building.md
to document some information about buildingprovenanced
anddbmigrate
.Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
docs/
) or specification (x/<module>/spec/
)godoc
comments.Unreleased
section inCHANGELOG.md
Files changed
in the Github PR explorerCodecov Report
in the comment section below once CI passes