vendor: udpate latest levledb

This commit is contained in:
rjl493456442 2019-09-26 19:54:43 +08:00
parent c1142a0e9c
commit 29c7b21157
4 changed files with 36 additions and 30 deletions

View file

@ -69,6 +69,9 @@ func (tr *Transaction) Has(key []byte, ro *opt.ReadOptions) (bool, error) {
// DB. And a nil Range.Limit is treated as a key after all keys in
// the DB.
//
// The returned iterator has locks on its own resources, so it can live beyond
// the lifetime of the transaction who creates them.
//
// WARNING: Any slice returned by interator (e.g. slice returned by calling
// Iterator.Key() or Iterator.Key() methods), its content should not be modified
// unless noted otherwise.
@ -252,13 +255,14 @@ func (tr *Transaction) discard() {
// Discard transaction.
for _, t := range tr.tables {
tr.db.logf("transaction@discard @%d", t.fd.Num)
if err1 := tr.db.s.stor.Remove(t.fd); err1 == nil {
tr.db.s.reuseFileNum(t.fd.Num)
}
// Iterator may still use the table, so we use tOps.remove here.
tr.db.s.tops.remove(t.fd)
}
}
// Discard discards the transaction.
// This method is noop if transaction is already closed (either committed or
// discarded)
//
// Other methods should not be called after transaction has been discarded.
func (tr *Transaction) Discard() {

View file

@ -308,7 +308,7 @@ func (s *session) setNextFileNum(num int64) {
func (s *session) markFileNum(num int64) {
nextFileNum := num + 1
for {
old, x := s.stNextFileNum, nextFileNum
old, x := atomic.LoadInt64(&s.stNextFileNum), nextFileNum
if old > x {
x = old
}
@ -326,7 +326,7 @@ func (s *session) allocFileNum() int64 {
// Reuse given file number.
func (s *session) reuseFileNum(num int64) {
for {
old, x := s.stNextFileNum, num
old, x := atomic.LoadInt64(&s.stNextFileNum), num
if old != x+1 {
x = old
}

View file

@ -493,6 +493,8 @@ func (t *tOps) remove(fd storage.FileDesc) {
if t.evictRemoved && t.bcache != nil {
t.bcache.EvictNS(uint64(fd.Num))
}
// Try to reuse file num, useful for discarded transaction.
t.s.reuseFileNum(fd.Num)
})
}

50
vendor/vendor.json vendored
View file

@ -449,76 +449,76 @@
"revisionTime": "2017-07-05T02:17:15Z"
},
{
"checksumSHA1": "bva7K+I3qF8NE32iIfBoXONPnL8=",
"checksumSHA1": "Bl4KYAyUkgJSjcdEyv3VhHQ8PVs=",
"path": "github.com/syndtr/goleveldb/leveldb",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "mPNraL2edpk/2FYq26rSXfMHbJg=",
"path": "github.com/syndtr/goleveldb/leveldb/cache",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "UA+PKDKWlDnE2OZblh23W6wZwbY=",
"path": "github.com/syndtr/goleveldb/leveldb/comparer",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "1DRAxdlWzS4U0xKN/yQ/fdNN7f0=",
"path": "github.com/syndtr/goleveldb/leveldb/errors",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "iBorxU3FBbau81WSyVa8KwcutzA=",
"path": "github.com/syndtr/goleveldb/leveldb/filter",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "hPyFsMiqZ1OB7MX+6wIAA6nsdtc=",
"path": "github.com/syndtr/goleveldb/leveldb/iterator",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "gJY7bRpELtO0PJpZXgPQ2BYFJ88=",
"path": "github.com/syndtr/goleveldb/leveldb/journal",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "2ncG38FDk2thSlrHd7JFmiuvnxA=",
"path": "github.com/syndtr/goleveldb/leveldb/memdb",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "LC+WnyNq4O2J9SHuVfWL19wZH48=",
"path": "github.com/syndtr/goleveldb/leveldb/opt",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "ZnyuciM+R19NG8L5YS3TIJdo1e8=",
"path": "github.com/syndtr/goleveldb/leveldb/storage",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "DS0i9KReIeZn3T1Bpu31xPMtzio=",
"path": "github.com/syndtr/goleveldb/leveldb/table",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "V/Dh7NV0/fy/5jX1KaAjmGcNbzI=",
"path": "github.com/syndtr/goleveldb/leveldb/util",
"revision": "81b91e5521e1d9f5d09677b8a940a5903385b2fa",
"revisionTime": "2019-09-19T06:41:59Z"
"revision": "758128399b1df3a87e92df6c26c1d2063da8fabe",
"revisionTime": "2019-09-23T12:57:48Z"
},
{
"checksumSHA1": "SsMMqb3xn7hg1ZX5ugwZz5rzpx0=",