aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMartin Holst Swende <martin@swende.se>2019-05-03 18:55:36 +0800
committerPéter Szilágyi <peterke@gmail.com>2019-05-16 15:39:33 +0800
commit42c746d6f405deb0c49d868dcc6e0afe279e19ab (patch)
treefda4d67dd1af4324b3caf1eb79091435a0242082 /core
parent331de17e4d773803c0d507bd574361f777acdf57 (diff)
downloadgo-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.go4
-rw-r--r--core/rawdb/freezer_table.go6
-rw-r--r--core/rawdb/schema.go10
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 {