// Get returns the given key if it's present. func (self *LDBDatabase) Get(key []byte) ([]byte, error) { dat, err := self.db.Get(key, nil) if err != nil { return nil, err } return rle.Decompress(dat) }
func (self *LDBDatabase) Get(key []byte) ([]byte, error) { self.mu.Lock() defer self.mu.Unlock() // Check queue first if dat, ok := self.queue[string(key)]; ok { return dat, nil } dat, err := self.db.Get(key, nil) if err != nil { return nil, err } return rle.Decompress(dat) }
// Get returns the given key if it's present. func (self *LDBDatabase) Get(key []byte) ([]byte, error) { // Measure the database get latency, if requested if self.GetTimer != nil { defer self.GetTimer.UpdateSince(time.Now()) } // Retrieve the key and increment the miss counter if not found dat, err := self.db.Get(key, nil) if err != nil { if self.MissMeter != nil { self.MissMeter.Mark(1) } return nil, err } // Otherwise update the actually retrieved amount of data if self.ReadMeter != nil { self.ReadMeter.Mark(int64(len(dat))) } return rle.Decompress(dat) }