Ethan Frey

Results 170 comments of Ethan Frey

@Hywan You can close this PR, or take it over. It was frozen so long, I ended up building my own bindings rust -> go. There were some open questions,...

The go bindings should not be too hard to refine once the wasmer runtime adds support. Note that the only real conflict is wasmer/wasmer.h (and rebuild the so file with...

Interesting idea. It could also just be cranelift and singlepass to start. LLVM is a bit more complicated to build (especially if you try to cross-compile for multiple platforms). You...

@sorawit I abandoned this PR as there were a number of issues on how to expose different configurations via one dll. I ended up building most of my low-level logic...

Pushed a new branch, which seems slower for memdb, but faster for goleveldb: benchmarks: ``` $ go test -bench=Medium Init Tree took 96.26 MB goos: linux goarch: amd64 pkg: github.com/tendermint/iavl/benchmarks...

Notes on history size... Keep last 20 blocks: ``` $ go test -bench=Medium Init Tree took 96.26 MB goos: linux goarch: amd64 pkg: github.com/tendermint/iavl/benchmarks BenchmarkMedium/memdb-100000-100-16-40/query-miss-8 200000 6164 ns/op BenchmarkMedium/memdb-100000-100-16-40/query-hits-8 200000...

One issue is that we can never overwrite nodes as long as we want to maintain history. This is why iavl uses the unique hashes (including version) for the keys....

Are there concrete performance numbers (benchmarks and pprof) that show this root issue

BadgerDB has same snapshotting feature and is native go (no cgo required). But I agree with using more powerful persistence layer to reduce complexity (and performance overhead) in our code....

> However when the tree is running on mutable mode node.version will be empty(not sure yet which of bigendian(0), bigendian(maxuint64), nil) so when the value changes or the tree rotates...