Martin Holst Swende
99394adcb8
ethdb/pebble: prevent shutdown-panic ( #27238 )
...
One difference between pebble and leveldb is that the latter returns error when performing Get on a closed database, the former does a panic. This may be triggered during shutdown (see #27237 )
This PR changes the pebble driver so we check that the db is not closed already, for several operations. It also adds tests to the db test-suite, so the previously implicit assumption of "not panic:ing at ops on closed database" is covered by tests.
2023-05-19 08:36:21 -04:00
Péter Szilágyi
d3ece3a07c
cmd/utils, node: switch to Pebble as the default db if none exists ( #27136 )
...
* cmd/utils, node: switch to Pebble as the default db if none exists
* node: fall back to LevelDB on platforms not supporting Pebble
* core/rawdb, node: default to Pebble at the node level
* cmd/geth: fix some tests explicitly using leveldb
* ethdb/pebble: allow double closes, makes tests simpler
2023-04-21 19:24:18 +03:00
s7v7nislands
50317bdace
ethdb/pebble: use atomic type ( #27014 )
2023-03-30 15:02:14 -04:00
Péter Szilágyi
19f74fa3c0
core/rawdb, ethdb/pebble: disable pebble on openbsd ( #26801 )
2023-03-03 12:05:00 +02:00
rjl493456442
2bb622ce40
ethdb/pebble: fix max memorytable size ( #26776 )
2023-02-28 15:34:12 +02:00
rjl493456442
98b0ea62b5
ethdb/pebble: fix range compaction ( #26771 )
...
* ethdb/pebble: fix range compaction
* ethdb/pebble: add comment
2023-02-28 15:32:51 +02:00
Patrick O'Grady
5967a2290a
ethdb/pebble: Fix `MemTableStopWritesThreshold` ( #26692 )
...
MemTableStopWritesThreshold was set to the max size of all memtables before blocking writing but should be set to the max number of memtables. This is documented [here](https://github.com/cockroachdb/pebble/blob/master/options.go#L738-L742 ).
2023-02-15 03:27:52 -05:00
rjl493456442
0ea65d4020
ethdb: add benchmark test suite ( #26659 )
2023-02-10 04:35:00 -05:00
Péter Szilágyi
da3c974c36
ethdb/pebble: fix nil callbacks ( #26650 )
2023-02-09 13:31:42 +02:00
Martin Holst Swende
ed51b8c5d3
ethdb: pebble backend (64bit platforms only) ( #26517 )
...
* ethdb: use pebble
Co-authored-by: Gary Rong <garyrong0905@gmail.com>
foo
update
* apply suggested changes
* flags: go format
node: fix ddir lookup mistake
accounts/abi/bind: fix go.mod replacement for generated binding
deps: update pebble + with fix 32-bit build
* ethdb/pebble: respect max memtable size
* core/rawdb, ethdb: enable pebble on non-32bit platforms only
* core/rawdb: fix build tags, fix some review concerns
* core/rawdb: refactor methods for database opening
* core/rawdb: remove erroneous build tag
* cmd/geth: fix the flag default handling + testcase
* cmd/geth: improve testing regarding custom backends
* ethdb/pebble, deps: update pebble dependency
* core/rawdb: replace method with Open
* ethdb/pebble: several updates for pebble (#49 )
* ethdb/pebble: fix size count in batch
* ethdb/pebble: disable seek compaction
* ethdb/pebble: more fixes
* ethdb, core, cmd: polish and fixes (#50 )
* cmd/utils, core/rawdb, ethdb/pebble: address some review concerns
* Update flags.go
* ethdb/pebble: minor refactors
* ethdb/pebble: avoid copy on batch replay
* ethdb: fix compilation flaw
* cmd: fix test fail due to mismatching error message
* cmd/geth, node: rename backingdb to db.engine
---------
Co-authored-by: Jared Wasinger <j-wasinger@hotmail.com>
Co-authored-by: rjl493456442 <garyrong0905@gmail.com>
Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2023-02-09 10:48:34 +02:00