diff options
| author | Eric Yang <lanqingy@usc.edu> | 2022-09-06 23:51:27 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-06 23:51:27 -0700 |
| commit | b324a6536c07ff57340ff62b5d5318d05ff5666c (patch) | |
| tree | 076b2eeabdcd1c677b623327dc8791460abe215a /weed/storage/erasure_coding | |
| parent | c07ab9c060eafe26cc0b4246d507d5b33f32f317 (diff) | |
| download | seaweedfs-b324a6536c07ff57340ff62b5d5318d05ff5666c.tar.xz seaweedfs-b324a6536c07ff57340ff62b5d5318d05ff5666c.zip | |
ADHOC: add read needle meta grpc (#3581)
* ADHOC: add read needle meta grpc
* add test
* nit
Co-authored-by: root <root@HQ-10MSTD3EY.roblox.local>
Diffstat (limited to 'weed/storage/erasure_coding')
| -rw-r--r-- | weed/storage/erasure_coding/ec_volume.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/weed/storage/erasure_coding/ec_volume.go b/weed/storage/erasure_coding/ec_volume.go index 5e1d1121b..aa1e15722 100644 --- a/weed/storage/erasure_coding/ec_volume.go +++ b/weed/storage/erasure_coding/ec_volume.go @@ -210,10 +210,14 @@ func (ev *EcVolume) LocateEcShardNeedle(needleId types.NeedleId, version needle. return types.Offset{}, 0, nil, fmt.Errorf("FindNeedleFromEcx: %v", err) } - shard := ev.Shards[0] + intervals = ev.LocateEcShardNeedleInterval(version, offset.ToActualOffset(), types.Size(needle.GetActualSize(size, version))) + return +} +func (ev *EcVolume) LocateEcShardNeedleInterval(version needle.Version, offset int64, size types.Size) (intervals []Interval) { + shard := ev.Shards[0] // calculate the locations in the ec shards - intervals = LocateData(ErasureCodingLargeBlockSize, ErasureCodingSmallBlockSize, DataShardsCount*shard.ecdFileSize, offset.ToActualOffset(), types.Size(needle.GetActualSize(size, version))) + intervals = LocateData(ErasureCodingLargeBlockSize, ErasureCodingSmallBlockSize, DataShardsCount*shard.ecdFileSize, offset, types.Size(needle.GetActualSize(size, version))) return } |
