Browse Source

Merge pull request #657 from chrislusf/master

Master
pull/3153/head
Chris Lu 7 years ago
committed by GitHub
parent
commit
147665e9a6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      weed/storage/needle_map_boltdb.go

17
weed/storage/needle_map_boltdb.go

@ -75,8 +75,8 @@ func generateBoltDbFile(dbFileName string, indexFile *os.File) error {
}
func (m *BoltDbNeedleMap) Get(key uint64) (element *needle.NeedleValue, ok bool) {
var offset, size uint32
bytes := make([]byte, 8)
var data []byte
util.Uint64toBytes(bytes, key)
err := m.db.View(func(tx *bolt.Tx) error {
bucket := tx.Bucket(boltdbBucket)
@ -84,15 +84,22 @@ func (m *BoltDbNeedleMap) Get(key uint64) (element *needle.NeedleValue, ok bool)
return fmt.Errorf("Bucket %q not found!", boltdbBucket)
}
data = bucket.Get(bytes)
data := bucket.Get(bytes)
if len(data) != 8 {
glog.V(0).Infof("wrong data length: %d", len(data))
return fmt.Errorf("wrong data length: %d", len(data))
}
offset = util.BytesToUint32(data[0:4])
size = util.BytesToUint32(data[4:8])
return nil
})
if err != nil || len(data) != 8 {
if err != nil {
return nil, false
}
offset := util.BytesToUint32(data[0:4])
size := util.BytesToUint32(data[4:8])
return &needle.NeedleValue{Key: needle.Key(key), Offset: offset, Size: size}, true
}

Loading…
Cancel
Save