cmd/segment-reaper: Report zombie segment's size
Makes the detect command of the segments reaper to report the size of each zombie segment. Change-Id: Ibded5f4d1b53f6d2805dac96fd306452af7f2524
This commit is contained in:
parent
08692aef90
commit
5ea82dfb2e
@ -65,7 +65,7 @@ func cmdDelete(cmd *cobra.Command, args []string) (err error) {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
csvReader := csv.NewReader(inputFile)
|
csvReader := csv.NewReader(inputFile)
|
||||||
csvReader.FieldsPerRecord = 5
|
csvReader.FieldsPerRecord = 6
|
||||||
csvReader.ReuseRecord = true
|
csvReader.ReuseRecord = true
|
||||||
|
|
||||||
segmentsDeleted := 0
|
segmentsDeleted := 0
|
||||||
|
@ -43,6 +43,7 @@ func newObserver(db metainfo.PointerDB, w *csv.Writer, from, to *time.Time) (*ob
|
|||||||
"Bucket",
|
"Bucket",
|
||||||
"EncodedEncryptedPath",
|
"EncodedEncryptedPath",
|
||||||
"CreationDate",
|
"CreationDate",
|
||||||
|
"Size",
|
||||||
}
|
}
|
||||||
err := w.Write(headers)
|
err := w.Write(headers)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -270,7 +271,7 @@ func (obsvr *observer) printSegment(ctx context.Context, segmentIndex int, bucke
|
|||||||
} else {
|
} else {
|
||||||
segmentIndexStr = "s" + strconv.Itoa(segmentIndex)
|
segmentIndexStr = "s" + strconv.Itoa(segmentIndex)
|
||||||
}
|
}
|
||||||
creationDate, err := pointerCreationDate(ctx, obsvr.db, obsvr.lastProjectID, segmentIndexStr, bucket, path)
|
creationDate, size, err := pointerCreationDateAndSize(ctx, obsvr.db, obsvr.lastProjectID, segmentIndexStr, bucket, path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -281,6 +282,7 @@ func (obsvr *observer) printSegment(ctx context.Context, segmentIndex int, bucke
|
|||||||
bucket,
|
bucket,
|
||||||
encodedPath,
|
encodedPath,
|
||||||
creationDate,
|
creationDate,
|
||||||
|
strconv.FormatInt(size, 10),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -289,19 +291,22 @@ func (obsvr *observer) printSegment(ctx context.Context, segmentIndex int, bucke
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func pointerCreationDate(ctx context.Context, db metainfo.PointerDB, projectID, segmentIndex, bucket, path string) (string, error) {
|
func pointerCreationDateAndSize(
|
||||||
|
ctx context.Context, db metainfo.PointerDB, projectID, segmentIndex, bucket, path string,
|
||||||
|
) (creationDate string, size int64, _ error) {
|
||||||
key := []byte(storj.JoinPaths(projectID, segmentIndex, bucket, path))
|
key := []byte(storj.JoinPaths(projectID, segmentIndex, bucket, path))
|
||||||
pointerBytes, err := db.Get(ctx, key)
|
pointerBytes, err := db.Get(ctx, key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
pointer := &pb.Pointer{}
|
pointer := &pb.Pointer{}
|
||||||
err = pb.Unmarshal(pointerBytes, pointer)
|
err = pb.Unmarshal(pointerBytes, pointer)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", 0, err
|
||||||
}
|
}
|
||||||
return pointer.CreationDate.Format(time.RFC3339Nano), nil
|
|
||||||
|
return pointer.CreationDate.Format(time.RFC3339Nano), pointer.SegmentSize, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (obsvr *observer) resetZombieBuffer() {
|
func (obsvr *observer) resetZombieBuffer() {
|
||||||
|
Loading…
Reference in New Issue
Block a user