aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-07-07 11:50:28 -0700
committerchrislu <chris.lu@gmail.com>2022-07-07 11:50:28 -0700
commitf2f0482dd332e13f57f0e39b262fa409dacca02e (patch)
tree3bbfa166f91aa0a645c608a0f9abd6d544572a2e
parent05c53820b99d20a7123e1583e4853724034970f9 (diff)
downloadseaweedfs-f2f0482dd332e13f57f0e39b262fa409dacca02e.tar.xz
seaweedfs-f2f0482dd332e13f57f0e39b262fa409dacca02e.zip
mount: random read also try to use the local cache first
-rw-r--r--weed/filer/reader_at.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/weed/filer/reader_at.go b/weed/filer/reader_at.go
index 7d9997761..b938083d8 100644
--- a/weed/filer/reader_at.go
+++ b/weed/filer/reader_at.go
@@ -164,6 +164,10 @@ func (c *ChunkReadAt) doReadAt(p []byte, offset int64) (n int, err error) {
func (c *ChunkReadAt) readChunkSliceAt(buffer []byte, chunkView *ChunkView, nextChunkViews []*ChunkView, offset uint64) (n int, err error) {
if c.readerPattern.IsRandomMode() {
+ n, err := c.readerCache.chunkCache.ReadChunkAt(buffer, chunkView.FileId, offset)
+ if n > 0 {
+ return n, err
+ }
return fetchChunkRange(buffer, c.readerCache.lookupFileIdFn, chunkView.FileId, chunkView.CipherKey, chunkView.IsGzipped, int64(offset))
}