diff options
| author | chrislu <chris.lu@gmail.com> | 2022-02-25 21:55:04 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-02-25 21:55:04 -0800 |
| commit | 3ad5fa6f6f513df152ff155b1fdd93a3c411b6ca (patch) | |
| tree | f8547d0111603a2765c0179a0f00c1817a0ea9f9 /weed/util/chunk_cache/on_disk_cache_layer.go | |
| parent | fc7a4957eae6a3f58fb52c88210019e4af89a290 (diff) | |
| download | seaweedfs-3ad5fa6f6f513df152ff155b1fdd93a3c411b6ca.tar.xz seaweedfs-3ad5fa6f6f513df152ff155b1fdd93a3c411b6ca.zip | |
chunk cache adds function ReadChunkAt
Diffstat (limited to 'weed/util/chunk_cache/on_disk_cache_layer.go')
| -rw-r--r-- | weed/util/chunk_cache/on_disk_cache_layer.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/weed/util/chunk_cache/on_disk_cache_layer.go b/weed/util/chunk_cache/on_disk_cache_layer.go index 3a656110e..9115b1bb1 100644 --- a/weed/util/chunk_cache/on_disk_cache_layer.go +++ b/weed/util/chunk_cache/on_disk_cache_layer.go @@ -108,6 +108,26 @@ func (c *OnDiskCacheLayer) getChunkSlice(needleId types.NeedleId, offset, length } +func (c *OnDiskCacheLayer) readChunkAt(buffer []byte, needleId types.NeedleId, offset uint64) (n int, err error) { + + for _, diskCache := range c.diskCaches { + n, err = diskCache.readNeedleSliceAt(buffer, needleId, offset) + if err == storage.ErrorNotFound { + continue + } + if err != nil { + glog.Warningf("failed to read cache file %s id %d: %v", diskCache.fileName, needleId, err) + continue + } + if n > 0 { + return + } + } + + return + +} + func (c *OnDiskCacheLayer) shutdown() { for _, diskCache := range c.diskCaches { |
