diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-04-12 01:13:57 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-04-12 01:13:57 -0700 |
| commit | e613695af794e5509ea454920f78063f453f16f2 (patch) | |
| tree | 190f3cf62c862002112ddeafd088b0081b0fa0bf | |
| parent | 2a1f396df5abd47e7fc4a58c3bc39675e1e84e4f (diff) | |
| download | seaweedfs-e613695af794e5509ea454920f78063f453f16f2.tar.xz seaweedfs-e613695af794e5509ea454920f78063f453f16f2.zip | |
a little optimization
| -rw-r--r-- | weed/filer2/reader_at.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/filer2/reader_at.go b/weed/filer2/reader_at.go index 2782cc204..c1ad1677f 100644 --- a/weed/filer2/reader_at.go +++ b/weed/filer2/reader_at.go @@ -105,9 +105,11 @@ func (c *ChunkReadAt) fetchChunkData(chunkView *ChunkView) (data []byte, err err // fmt.Printf("fetching %s [%d,%d)\n", chunkView.FileId, chunkView.LogicOffset, chunkView.LogicOffset+int64(chunkView.Size)) + hasDataInCache := false chunkData := c.chunkCache.GetChunk(chunkView.FileId) if chunkData != nil { glog.V(3).Infof("cache hit %s [%d,%d)", chunkView.FileId, chunkView.LogicOffset, chunkView.LogicOffset+int64(chunkView.Size)) + hasDataInCache = true } else { chunkData, err = c.doFetchFullChunkData(chunkView.FileId, chunkView.CipherKey, chunkView.IsGzipped) if err != nil { @@ -121,7 +123,9 @@ func (c *ChunkReadAt) fetchChunkData(chunkView *ChunkView) (data []byte, err err data = chunkData[chunkView.Offset : chunkView.Offset+int64(chunkView.Size)] - c.chunkCache.SetChunk(chunkView.FileId, chunkData) + if !hasDataInCache { + c.chunkCache.SetChunk(chunkView.FileId, chunkData) + } return data, nil } |
