diff options
author | Martin Holst Swende <martin@swende.se> | 2019-05-03 18:55:36 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2019-05-16 15:39:33 +0800 |
commit | 42c746d6f405deb0c49d868dcc6e0afe279e19ab (patch) | |
tree | fda4d67dd1af4324b3caf1eb79091435a0242082 /core | |
parent | 331de17e4d773803c0d507bd574361f777acdf57 (diff) | |
download | go-tangerine-42c746d6f405deb0c49d868dcc6e0afe279e19ab.tar go-tangerine-42c746d6f405deb0c49d868dcc6e0afe279e19ab.tar.gz go-tangerine-42c746d6f405deb0c49d868dcc6e0afe279e19ab.tar.bz2 go-tangerine-42c746d6f405deb0c49d868dcc6e0afe279e19ab.tar.lz go-tangerine-42c746d6f405deb0c49d868dcc6e0afe279e19ab.tar.xz go-tangerine-42c746d6f405deb0c49d868dcc6e0afe279e19ab.tar.zst go-tangerine-42c746d6f405deb0c49d868dcc6e0afe279e19ab.zip |
freezer: disable compression on hashes and difficulties (#14)
* freezer: disable compression on hashes and difficulties
* core/rawdb: address review concerns
* core/rawdb: address review concerns
Diffstat (limited to 'core')
-rw-r--r-- | core/rawdb/freezer.go | 4 | ||||
-rw-r--r-- | core/rawdb/freezer_table.go | 6 | ||||
-rw-r--r-- | core/rawdb/schema.go | 10 |
3 files changed, 15 insertions, 5 deletions
diff --git a/core/rawdb/freezer.go b/core/rawdb/freezer.go index 84426d8ae..21a6055cd 100644 --- a/core/rawdb/freezer.go +++ b/core/rawdb/freezer.go @@ -89,8 +89,8 @@ func newFreezer(datadir string, namespace string) (*freezer, error) { tables: make(map[string]*freezerTable), instanceLock: lock, } - for _, name := range []string{freezerHashTable, freezerHeaderTable, freezerBodiesTable, freezerReceiptTable, freezerDifficultyTable} { - table, err := newTable(datadir, name, readMeter, writeMeter) + for name, disableSnappy := range freezerNoSnappy { + table, err := newTable(datadir, name, readMeter, writeMeter, disableSnappy) if err != nil { for _, table := range freezer.tables { table.Close() diff --git a/core/rawdb/freezer_table.go b/core/rawdb/freezer_table.go index 93636a5ba..d46597f73 100644 --- a/core/rawdb/freezer_table.go +++ b/core/rawdb/freezer_table.go @@ -97,9 +97,9 @@ type freezerTable struct { lock sync.RWMutex // Mutex protecting the data file descriptors } -// newTable opens a freezer table with default settings - 2G files and snappy compression -func newTable(path string, name string, readMeter metrics.Meter, writeMeter metrics.Meter) (*freezerTable, error) { - return newCustomTable(path, name, readMeter, writeMeter, 2*1000*1000*1000, false) +// newTable opens a freezer table with default settings - 2G files +func newTable(path string, name string, readMeter metrics.Meter, writeMeter metrics.Meter, disableSnappy bool) (*freezerTable, error) { + return newCustomTable(path, name, readMeter, writeMeter, 2*1000*1000*1000, disableSnappy) } // newCustomTable opens a freezer table, creating the data and index files if they are diff --git a/core/rawdb/schema.go b/core/rawdb/schema.go index ebca17252..a44a2c99f 100644 --- a/core/rawdb/schema.go +++ b/core/rawdb/schema.go @@ -80,6 +80,16 @@ const ( freezerDifficultyTable = "diffs" ) +// freezerNoSnappy configures whether compression is disabled for the ancient-tables. +// Hashes and difficulties don't compress well. +var freezerNoSnappy = map[string]bool{ + freezerHeaderTable: false, + freezerHashTable: true, + freezerBodiesTable: false, + freezerReceiptTable: false, + freezerDifficultyTable: true, +} + // LegacyTxLookupEntry is the legacy TxLookupEntry definition with some unnecessary // fields. type LegacyTxLookupEntry struct { |