From 4b5757c36c1b094ccec70aa9089412ace34e59f9 Mon Sep 17 00:00:00 2001 From: rjl493456442 Date: Thu, 14 Dec 2017 22:46:40 +0800 Subject: [PATCH] vendor: update leveldb --- vendor/github.com/syndtr/goleveldb/leveldb/db.go | 13 ++++++++++--- .../github.com/syndtr/goleveldb/leveldb/db_write.go | 3 +++ vendor/vendor.json | 6 +++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db.go b/vendor/github.com/syndtr/goleveldb/leveldb/db.go index fc3c408f8d..ea5595eb3a 100644 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db.go +++ b/vendor/github.com/syndtr/goleveldb/leveldb/db.go @@ -32,6 +32,11 @@ type DB struct { // Need 64-bit alignment. seq uint64 + // Stats. Need 64-bit alignment. + cWriteDelay int64 // The cumulative duration of write delays + cWriteDelayN int32 // The cumulative number of write delays + aliveSnaps, aliveIters int32 + // Session. s *session @@ -49,9 +54,6 @@ type DB struct { snapsMu sync.Mutex snapsList *list.List - // Stats. - aliveSnaps, aliveIters int32 - // Write. batchPool sync.Pool writeMergeC chan writeMerge @@ -904,6 +906,8 @@ func (db *DB) GetSnapshot() (*Snapshot, error) { // Returns the number of files at level 'n'. // leveldb.stats // Returns statistics of the underlying DB. +// leveldb.writedelay +// Returns cumulative write delay caused by compaction. // leveldb.sstables // Returns sstables list for each level. // leveldb.blockpool @@ -955,6 +959,9 @@ func (db *DB) GetProperty(name string) (value string, err error) { level, len(tables), float64(tables.size())/1048576.0, duration.Seconds(), float64(read)/1048576.0, float64(write)/1048576.0) } + case p == "writedelay": + writeDelayN, writeDelay := atomic.LoadInt32(&db.cWriteDelayN), time.Duration(atomic.LoadInt64(&db.cWriteDelay)) + value = fmt.Sprintf("DelayN:%d Delay:%s", writeDelayN, writeDelay) case p == "sstables": for level, tables := range v.levels { value += fmt.Sprintf("--- level %d ---\n", level) diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go index 5b6cb487dc..3662d95f07 100644 --- a/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go +++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go @@ -7,6 +7,7 @@ package leveldb import ( + "sync/atomic" "time" "github.com/syndtr/goleveldb/leveldb/memdb" @@ -117,6 +118,8 @@ func (db *DB) flush(n int) (mdb *memDB, mdbFree int, err error) { db.writeDelayN++ } else if db.writeDelayN > 0 { db.logf("db@write was delayed N·%d T·%v", db.writeDelayN, db.writeDelay) + atomic.AddInt32(&db.cWriteDelayN, int32(db.writeDelayN)) + atomic.AddInt64(&db.cWriteDelay, int64(db.writeDelay)) db.writeDelay = 0 db.writeDelayN = 0 } diff --git a/vendor/vendor.json b/vendor/vendor.json index b3128a5c62..f69ada5535 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -358,10 +358,10 @@ "revisionTime": "2017-07-05T02:17:15Z" }, { - "checksumSHA1": "spMeORRgS1azN91KYqJgoxBmhMw=", + "checksumSHA1": "l9hsW4atYllqlNjJUwHb6lyLn+I=", "path": "github.com/syndtr/goleveldb/leveldb", - "revision": "3d8f4155ffd9029d32e5cf03853b58759b6e3710", - "revisionTime": "2017-12-09T15:37:43Z" + "revision": "34011bf325bce385408353a30b101fe5e923eb6e", + "revisionTime": "2017-12-14T12:08:11Z" }, { "checksumSHA1": "EKIow7XkgNdWvR/982ffIZxKG8Y=",