aboutsummaryrefslogtreecommitdiff
path: root/weed/storage/erasure_coding
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2019-05-30 09:47:54 -0700
committerChris Lu <chris.lu@gmail.com>2019-05-30 09:47:54 -0700
commit40ca2f2903c2b95aa4dd2101598f0dbdd2024d07 (patch)
tree1171a40d065f457a85133b08353e29970f06ccc9 /weed/storage/erasure_coding
parent1d111d6ce80727f2c0a25b36b85102d5cb5ae612 (diff)
downloadseaweedfs-40ca2f2903c2b95aa4dd2101598f0dbdd2024d07.tar.xz
seaweedfs-40ca2f2903c2b95aa4dd2101598f0dbdd2024d07.zip
add collection.delete
Diffstat (limited to 'weed/storage/erasure_coding')
-rw-r--r--weed/storage/erasure_coding/ec_shard.go4
-rw-r--r--weed/storage/erasure_coding/ec_volume.go11
2 files changed, 15 insertions, 0 deletions
diff --git a/weed/storage/erasure_coding/ec_shard.go b/weed/storage/erasure_coding/ec_shard.go
index 037c4ba48..687a582a7 100644
--- a/weed/storage/erasure_coding/ec_shard.go
+++ b/weed/storage/erasure_coding/ec_shard.go
@@ -64,6 +64,10 @@ func (shard *EcVolumeShard) Close() {
}
}
+func (shard *EcVolumeShard) Destroy() {
+ os.Remove(shard.FileName() + ToExt(int(shard.ShardId)))
+}
+
func (shard *EcVolumeShard) ReadAt(buf []byte, offset int64) (int, error) {
return shard.ecdFile.ReadAt(buf, offset)
diff --git a/weed/storage/erasure_coding/ec_volume.go b/weed/storage/erasure_coding/ec_volume.go
index 32f66260a..28dbd8c7f 100644
--- a/weed/storage/erasure_coding/ec_volume.go
+++ b/weed/storage/erasure_coding/ec_volume.go
@@ -94,6 +94,17 @@ func (ev *EcVolume) Close() {
}
}
+func (ev *EcVolume) Destroy() {
+
+ ev.Close()
+
+ baseFileName := EcShardFileName(ev.Collection, ev.dir, int(ev.VolumeId))
+ for _, s := range ev.Shards {
+ s.Destroy()
+ }
+ os.Remove(baseFileName + ".ecx")
+}
+
func (ev *EcVolume) ToVolumeEcShardInformationMessage() (messages []*master_pb.VolumeEcShardInformationMessage) {
prevVolumeId := needle.VolumeId(math.MaxUint32)
var m *master_pb.VolumeEcShardInformationMessage