satellite/repair: add metric trackers for segment age before repair (#3056)

This commit is contained in:
Natalie Villasana 2019-09-17 15:18:48 -04:00 committed by GitHub
parent 684b07b2c1
commit cc70cd2329
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 120 additions and 47 deletions

View File

@ -263,6 +263,8 @@ type Pointer struct {
CreationDate time.Time `protobuf:"bytes,6,opt,name=creation_date,json=creationDate,proto3,stdtime" json:"creation_date"`
ExpirationDate time.Time `protobuf:"bytes,7,opt,name=expiration_date,json=expirationDate,proto3,stdtime" json:"expiration_date"`
Metadata []byte `protobuf:"bytes,8,opt,name=metadata,proto3" json:"metadata,omitempty"`
LastRepaired time.Time `protobuf:"bytes,9,opt,name=last_repaired,json=lastRepaired,proto3,stdtime" json:"last_repaired"`
RepairCount int32 `protobuf:"varint,10,opt,name=repair_count,json=repairCount,proto3" json:"repair_count,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -341,6 +343,20 @@ func (m *Pointer) GetMetadata() []byte {
return nil
}
func (m *Pointer) GetLastRepaired() time.Time {
if m != nil {
return m.LastRepaired
}
return time.Time{}
}
func (m *Pointer) GetRepairCount() int32 {
if m != nil {
return m.RepairCount
}
return 0
}
// ListResponse is a response message for the List rpc call
type ListResponse struct {
Items []*ListResponse_Item `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
@ -456,51 +472,54 @@ func init() {
func init() { proto.RegisterFile("pointerdb.proto", fileDescriptor_75fef806d28fc810) }
var fileDescriptor_75fef806d28fc810 = []byte{
// 735 bytes of a gzipped FileDescriptorProto
// 770 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0xcd, 0x6e, 0xdb, 0x46,
0x10, 0x36, 0x2d, 0x89, 0xa2, 0x87, 0x94, 0xad, 0x2c, 0x8a, 0x96, 0x50, 0x0a, 0xc8, 0x21, 0x90,
0xd6, 0x45, 0x03, 0xba, 0x60, 0x6e, 0xcd, 0xa9, 0x86, 0x0c, 0x94, 0x80, 0xa3, 0x1a, 0x2b, 0xa1,
0x87, 0x5e, 0x88, 0x95, 0x38, 0x11, 0x17, 0x15, 0xb9, 0xcc, 0xee, 0x0a, 0x88, 0xfd, 0x14, 0x79,
0x8a, 0xbe, 0x45, 0xef, 0x7d, 0x86, 0x1e, 0x92, 0x57, 0x29, 0xb8, 0x4b, 0x4a, 0x4a, 0x03, 0x14,
0xe8, 0x85, 0x9c, 0x9f, 0x6f, 0x7e, 0xf6, 0x9b, 0x19, 0xb8, 0xa8, 0x05, 0xaf, 0x34, 0xca, 0x7c,
0x15, 0xd7, 0x52, 0x68, 0x41, 0xce, 0xf6, 0x86, 0xc9, 0x74, 0x23, 0xc4, 0x66, 0x8b, 0xd7, 0xc6,
0xb1, 0xda, 0xbd, 0xb9, 0xd6, 0xbc, 0x44, 0xa5, 0x59, 0x59, 0x5b, 0xec, 0x04, 0x36, 0x62, 0x23,
0x3a, 0xb9, 0x12, 0x39, 0xb6, 0x72, 0x20, 0x64, 0x8e, 0x52, 0x59, 0x2d, 0xfa, 0xe3, 0x14, 0xc6,
0x14, 0xf3, 0x5d, 0x95, 0xb3, 0x6a, 0xfd, 0xb0, 0x58, 0x17, 0x58, 0x22, 0xf9, 0x11, 0xfa, 0xfa,
0xa1, 0xc6, 0xd0, 0xb9, 0x74, 0xae, 0xce, 0x93, 0x6f, 0xe2, 0x43, 0x1b, 0xff, 0x86, 0xc6, 0xf6,
0xb7, 0x7c, 0xa8, 0x91, 0x9a, 0x18, 0xf2, 0x15, 0x0c, 0x4b, 0x5e, 0x65, 0x12, 0xdf, 0x86, 0xa7,
0x97, 0xce, 0xd5, 0x80, 0xba, 0x25, 0xaf, 0x28, 0xbe, 0x25, 0x5f, 0xc0, 0x40, 0x0b, 0xcd, 0xb6,
0x61, 0xcf, 0x98, 0xad, 0x42, 0xbe, 0x83, 0xb1, 0xc4, 0x9a, 0x71, 0x99, 0xe9, 0x42, 0xa2, 0x2a,
0xc4, 0x36, 0x0f, 0xfb, 0x06, 0x70, 0x61, 0xed, 0xcb, 0xce, 0x4c, 0xbe, 0x87, 0x27, 0x6a, 0xb7,
0x5e, 0xa3, 0x52, 0x47, 0xd8, 0x81, 0xc1, 0x8e, 0x5b, 0xc7, 0x01, 0xfc, 0x02, 0x08, 0x4a, 0xa6,
0x76, 0x12, 0x33, 0x55, 0xb0, 0xe6, 0xcb, 0x1f, 0x31, 0x74, 0x2d, 0xba, 0xf5, 0x2c, 0x1a, 0xc7,
0x82, 0x3f, 0x62, 0xf4, 0x0c, 0xe0, 0xf0, 0x10, 0xe2, 0xc3, 0x30, 0x9d, 0xff, 0xfa, 0xd3, 0x5d,
0x3a, 0x1b, 0x9f, 0x10, 0x17, 0x4e, 0xe9, 0x62, 0xec, 0x44, 0x8f, 0xe0, 0x53, 0x2c, 0x85, 0xc6,
0x7b, 0x8e, 0x6b, 0x24, 0x4f, 0xe1, 0xac, 0x6e, 0x84, 0xac, 0xda, 0x95, 0x86, 0xa7, 0x01, 0xf5,
0x8c, 0x61, 0xbe, 0x2b, 0xc9, 0xb7, 0x30, 0x6c, 0x08, 0xcf, 0x78, 0x6e, 0x38, 0x08, 0x6e, 0xce,
0xff, 0xfa, 0x30, 0x3d, 0xf9, 0xfb, 0xc3, 0xd4, 0x9d, 0x8b, 0x1c, 0xd3, 0x19, 0x75, 0x1b, 0x77,
0x9a, 0x93, 0xe7, 0xd0, 0x2f, 0x98, 0x2a, 0x0c, 0x25, 0x7e, 0xf2, 0x24, 0x6e, 0x47, 0x63, 0x4a,
0xfc, 0xcc, 0x54, 0x41, 0x8d, 0x3b, 0xfa, 0xe8, 0xc0, 0xc8, 0x16, 0x5f, 0xe0, 0xa6, 0xc4, 0x4a,
0x93, 0x57, 0x00, 0x72, 0x3f, 0x0a, 0x53, 0xdf, 0x4f, 0x9e, 0xfe, 0xc7, 0x9c, 0xe8, 0x11, 0x9c,
0xbc, 0x84, 0x91, 0x14, 0x42, 0x67, 0xf6, 0x01, 0xfb, 0x26, 0x2f, 0xda, 0x26, 0x87, 0xa6, 0x7c,
0x3a, 0xa3, 0x7e, 0x83, 0xb2, 0x4a, 0x4e, 0x5e, 0xc1, 0x48, 0x9a, 0x16, 0x6c, 0x98, 0x0a, 0x7b,
0x97, 0xbd, 0x2b, 0x3f, 0xf9, 0xf2, 0x93, 0xa2, 0x7b, 0x7e, 0x68, 0x20, 0x0f, 0x8a, 0x22, 0x53,
0xf0, 0x4b, 0x94, 0xbf, 0x6f, 0x31, 0x6b, 0x52, 0x9a, 0x01, 0x07, 0x14, 0xac, 0x89, 0x0a, 0xa1,
0xa3, 0xf7, 0x3d, 0x18, 0xde, 0xdb, 0x44, 0xe4, 0xfa, 0x93, 0xed, 0x3b, 0x7e, 0x55, 0x8b, 0x88,
0x67, 0x4c, 0xb3, 0xa3, 0x95, 0x7b, 0x0e, 0xe7, 0xbc, 0xda, 0xf2, 0x0a, 0x33, 0x65, 0xe9, 0x31,
0x7c, 0x06, 0x74, 0x64, 0xad, 0x1d, 0x67, 0x3f, 0x80, 0x6b, 0x9b, 0x32, 0xf5, 0xfd, 0x24, 0xfc,
0xac, 0xf5, 0x16, 0x49, 0x5b, 0x1c, 0x79, 0x06, 0x41, 0x9b, 0xd1, 0xae, 0x4f, 0xb3, 0x6c, 0x3d,
0xea, 0xb7, 0xb6, 0x66, 0x73, 0x48, 0x0a, 0xa3, 0xb5, 0x44, 0xa6, 0xb9, 0xa8, 0xb2, 0x9c, 0x69,
0xbb, 0x62, 0x7e, 0x32, 0x89, 0xed, 0x79, 0xc6, 0xdd, 0x79, 0xc6, 0xcb, 0xee, 0x3c, 0x6f, 0xbc,
0x86, 0xe7, 0xf7, 0x1f, 0xa7, 0x0e, 0x0d, 0xba, 0xd0, 0x19, 0xd3, 0x48, 0x5e, 0xc3, 0x05, 0xbe,
0xab, 0xb9, 0x3c, 0x4a, 0x36, 0xfc, 0x1f, 0xc9, 0xce, 0x0f, 0xc1, 0x26, 0xdd, 0x04, 0xbc, 0x12,
0x35, 0xcb, 0x99, 0x66, 0xa1, 0x67, 0xf8, 0xd8, 0xeb, 0x51, 0x04, 0x5e, 0xc7, 0x21, 0x01, 0x70,
0xd3, 0xf9, 0x5d, 0x3a, 0xbf, 0x1d, 0x9f, 0x34, 0x32, 0xbd, 0x7d, 0xfd, 0xcb, 0xf2, 0x76, 0xec,
0x44, 0x7f, 0x3a, 0x10, 0xdc, 0x71, 0xa5, 0x29, 0xaa, 0x5a, 0x54, 0x0a, 0x49, 0x02, 0x03, 0xae,
0xb1, 0x54, 0xa1, 0x63, 0x26, 0xff, 0xf5, 0x11, 0x7d, 0xc7, 0xb8, 0x38, 0xd5, 0x58, 0x52, 0x0b,
0x25, 0x04, 0xfa, 0xa5, 0x90, 0x68, 0x36, 0xcc, 0xa3, 0x46, 0x9e, 0x20, 0xf4, 0x1b, 0x48, 0xe3,
0xab, 0x99, 0x2e, 0xcc, 0x9c, 0xcf, 0xa8, 0x91, 0xc9, 0x0b, 0x18, 0xb6, 0x59, 0x4d, 0x88, 0x9f,
0x90, 0xcf, 0xc7, 0x4f, 0x3b, 0x48, 0x73, 0x84, 0x5c, 0x65, 0xb5, 0xc4, 0x37, 0xfc, 0x9d, 0x99,
0xb9, 0x47, 0x3d, 0xae, 0xee, 0x8d, 0x7e, 0xd3, 0xff, 0xed, 0xb4, 0x5e, 0xad, 0x5c, 0xc3, 0xd9,
0xcb, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x73, 0x81, 0x70, 0xa2, 0x4b, 0x05, 0x00, 0x00,
0x10, 0x36, 0xad, 0x5f, 0x0f, 0x29, 0x5b, 0x59, 0x14, 0x2d, 0xa1, 0x14, 0x90, 0x43, 0x20, 0xad,
0x8b, 0x06, 0x74, 0xc1, 0xdc, 0x9a, 0x53, 0x5d, 0x19, 0x28, 0x01, 0x47, 0x35, 0x56, 0x46, 0x0f,
0xbd, 0x10, 0x2b, 0x71, 0x22, 0x2e, 0x2a, 0x72, 0x99, 0xdd, 0x15, 0x10, 0xfb, 0x29, 0xfa, 0x14,
0x7d, 0x8b, 0xde, 0xfb, 0x0c, 0x3d, 0x24, 0x6f, 0x52, 0x14, 0xbb, 0x4b, 0x4a, 0x4a, 0x03, 0x14,
0xf0, 0x45, 0xda, 0x99, 0xf9, 0xe6, 0x87, 0xdf, 0x7c, 0x03, 0x67, 0xb5, 0xe0, 0x95, 0x46, 0x99,
0x2f, 0xe3, 0x5a, 0x0a, 0x2d, 0xc8, 0xc9, 0xce, 0x31, 0x99, 0xae, 0x85, 0x58, 0x6f, 0xf0, 0xd2,
0x06, 0x96, 0xdb, 0x37, 0x97, 0x9a, 0x97, 0xa8, 0x34, 0x2b, 0x6b, 0x87, 0x9d, 0xc0, 0x5a, 0xac,
0x45, 0xfb, 0xae, 0x44, 0x8e, 0xcd, 0x3b, 0x10, 0x32, 0x47, 0xa9, 0x9c, 0x15, 0xfd, 0x71, 0x0c,
0x63, 0x8a, 0xf9, 0xb6, 0xca, 0x59, 0xb5, 0xba, 0x5f, 0xac, 0x0a, 0x2c, 0x91, 0x7c, 0x0f, 0x5d,
0x7d, 0x5f, 0x63, 0xe8, 0x9d, 0x7b, 0x17, 0xa7, 0xc9, 0x57, 0xf1, 0x7e, 0x8c, 0xff, 0x42, 0x63,
0xf7, 0x77, 0x77, 0x5f, 0x23, 0xb5, 0x39, 0xe4, 0x0b, 0x18, 0x94, 0xbc, 0xca, 0x24, 0xbe, 0x0d,
0x8f, 0xcf, 0xbd, 0x8b, 0x1e, 0xed, 0x97, 0xbc, 0xa2, 0xf8, 0x96, 0x7c, 0x06, 0x3d, 0x2d, 0x34,
0xdb, 0x84, 0x1d, 0xeb, 0x76, 0x06, 0xf9, 0x06, 0xc6, 0x12, 0x6b, 0xc6, 0x65, 0xa6, 0x0b, 0x89,
0xaa, 0x10, 0x9b, 0x3c, 0xec, 0x5a, 0xc0, 0x99, 0xf3, 0xdf, 0xb5, 0x6e, 0xf2, 0x2d, 0x3c, 0x51,
0xdb, 0xd5, 0x0a, 0x95, 0x3a, 0xc0, 0xf6, 0x2c, 0x76, 0xdc, 0x04, 0xf6, 0xe0, 0x17, 0x40, 0x50,
0x32, 0xb5, 0x95, 0x98, 0xa9, 0x82, 0x99, 0x5f, 0xfe, 0x80, 0x61, 0xdf, 0xa1, 0x9b, 0xc8, 0xc2,
0x04, 0x16, 0xfc, 0x01, 0xa3, 0x67, 0x00, 0xfb, 0x0f, 0x21, 0x3e, 0x0c, 0xd2, 0xf9, 0x2f, 0x3f,
0xdc, 0xa4, 0xb3, 0xf1, 0x11, 0xe9, 0xc3, 0x31, 0x5d, 0x8c, 0xbd, 0xe8, 0x01, 0x7c, 0x8a, 0xa5,
0xd0, 0x78, 0xcb, 0x71, 0x85, 0xe4, 0x29, 0x9c, 0xd4, 0xe6, 0x91, 0x55, 0xdb, 0xd2, 0xf2, 0xd4,
0xa3, 0x43, 0xeb, 0x98, 0x6f, 0x4b, 0xf2, 0x35, 0x0c, 0x0c, 0xe1, 0x19, 0xcf, 0x2d, 0x07, 0xc1,
0xd5, 0xe9, 0x5f, 0xef, 0xa7, 0x47, 0x7f, 0xbf, 0x9f, 0xf6, 0xe7, 0x22, 0xc7, 0x74, 0x46, 0xfb,
0x26, 0x9c, 0xe6, 0xe4, 0x39, 0x74, 0x0b, 0xa6, 0x0a, 0x4b, 0x89, 0x9f, 0x3c, 0x89, 0x9b, 0xd5,
0xd8, 0x16, 0x3f, 0x31, 0x55, 0x50, 0x1b, 0x8e, 0x3e, 0x78, 0x30, 0x72, 0xcd, 0x17, 0xb8, 0x2e,
0xb1, 0xd2, 0xe4, 0x15, 0x80, 0xdc, 0xad, 0xc2, 0xf6, 0xf7, 0x93, 0xa7, 0xff, 0xb3, 0x27, 0x7a,
0x00, 0x27, 0x2f, 0x61, 0x24, 0x85, 0xd0, 0x99, 0xfb, 0x80, 0xdd, 0x90, 0x67, 0xcd, 0x90, 0x03,
0xdb, 0x3e, 0x9d, 0x51, 0xdf, 0xa0, 0x9c, 0x91, 0x93, 0x57, 0x30, 0x92, 0x76, 0x04, 0x97, 0xa6,
0xc2, 0xce, 0x79, 0xe7, 0xc2, 0x4f, 0x3e, 0xff, 0xa8, 0xe9, 0x8e, 0x1f, 0x1a, 0xc8, 0xbd, 0xa1,
0xc8, 0x14, 0xfc, 0x12, 0xe5, 0x6f, 0x1b, 0xcc, 0x4c, 0x49, 0xbb, 0xe0, 0x80, 0x82, 0x73, 0x51,
0x21, 0x74, 0xf4, 0x4f, 0x07, 0x06, 0xb7, 0xae, 0x10, 0xb9, 0xfc, 0x48, 0x7d, 0x87, 0x5f, 0xd5,
0x20, 0xe2, 0x19, 0xd3, 0xec, 0x40, 0x72, 0xcf, 0xe1, 0x94, 0x57, 0x1b, 0x5e, 0x61, 0xa6, 0x1c,
0x3d, 0x96, 0xcf, 0x80, 0x8e, 0x9c, 0xb7, 0xe5, 0xec, 0x3b, 0xe8, 0xbb, 0xa1, 0x6c, 0x7f, 0x3f,
0x09, 0x3f, 0x19, 0xbd, 0x41, 0xd2, 0x06, 0x47, 0x9e, 0x41, 0xd0, 0x54, 0x74, 0xf2, 0x31, 0x62,
0xeb, 0x50, 0xbf, 0xf1, 0x19, 0xe5, 0x90, 0x14, 0x46, 0x2b, 0x89, 0x4c, 0x73, 0x51, 0x65, 0x39,
0xd3, 0x4e, 0x62, 0x7e, 0x32, 0x89, 0xdd, 0x79, 0xc6, 0xed, 0x79, 0xc6, 0x77, 0xed, 0x79, 0x5e,
0x0d, 0x0d, 0xcf, 0xbf, 0x7f, 0x98, 0x7a, 0x34, 0x68, 0x53, 0x67, 0x4c, 0x23, 0x79, 0x0d, 0x67,
0xf8, 0xae, 0xe6, 0xf2, 0xa0, 0xd8, 0xe0, 0x11, 0xc5, 0x4e, 0xf7, 0xc9, 0xb6, 0xdc, 0x04, 0x86,
0x25, 0x6a, 0x96, 0x33, 0xcd, 0xc2, 0xa1, 0xe5, 0x63, 0x67, 0x9b, 0xa9, 0x37, 0x4c, 0xe9, 0xcc,
0x9d, 0x18, 0xe6, 0xe1, 0xc9, 0x63, 0xa6, 0x36, 0xa9, 0xb4, 0xc9, 0x34, 0x1c, 0x35, 0x07, 0xbc,
0x12, 0xdb, 0x4a, 0x87, 0x60, 0x6f, 0xc1, 0x77, 0xbe, 0x1f, 0x8d, 0x2b, 0x8a, 0x60, 0xd8, 0x6e,
0x8c, 0x00, 0xf4, 0xd3, 0xf9, 0x4d, 0x3a, 0xbf, 0x1e, 0x1f, 0x99, 0x37, 0xbd, 0x7e, 0xfd, 0xf3,
0xdd, 0xf5, 0xd8, 0x8b, 0xfe, 0xf4, 0x20, 0xb8, 0xe1, 0xa6, 0xae, 0xaa, 0x45, 0xa5, 0x90, 0x24,
0xd0, 0xe3, 0x1a, 0x4b, 0x15, 0x7a, 0x56, 0x67, 0x5f, 0x1e, 0x2c, 0xeb, 0x10, 0x17, 0xa7, 0x1a,
0x4b, 0xea, 0xa0, 0x84, 0x40, 0xb7, 0x14, 0x12, 0xad, 0x9e, 0x87, 0xd4, 0xbe, 0x27, 0x08, 0x5d,
0x03, 0x31, 0xb1, 0x9a, 0xe9, 0xc2, 0xaa, 0xea, 0x84, 0xda, 0x37, 0x79, 0x01, 0x83, 0xa6, 0xaa,
0x4d, 0xf1, 0x13, 0xf2, 0xa9, 0xd8, 0x68, 0x0b, 0x31, 0x27, 0xcf, 0x55, 0x56, 0x4b, 0x7c, 0xc3,
0xdf, 0x59, 0x85, 0x0d, 0xe9, 0x90, 0xab, 0x5b, 0x6b, 0x5f, 0x75, 0x7f, 0x3d, 0xae, 0x97, 0xcb,
0xbe, 0x25, 0xee, 0xe5, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x81, 0x7b, 0x5c, 0x68, 0xb9, 0x05,
0x00, 0x00,
}

View File

@ -56,6 +56,9 @@ message Pointer {
google.protobuf.Timestamp expiration_date = 7 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
bytes metadata = 8;
google.protobuf.Timestamp last_repaired = 9 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
int32 repair_count = 10;
}
// ListResponse is a response message for the List rpc call

View File

@ -5530,6 +5530,26 @@
"id": 8,
"name": "metadata",
"type": "bytes"
},
{
"id": 9,
"name": "last_repaired",
"type": "google.protobuf.Timestamp",
"options": [
{
"name": "(gogoproto.stdtime)",
"value": "true"
},
{
"name": "(gogoproto.nullable)",
"value": "false"
}
]
},
{
"id": 10,
"name": "repair_count",
"type": "int32"
}
]
},

View File

@ -118,6 +118,9 @@ func (s *Service) UpdatePieces(ctx context.Context, path string, ref *pb.Pointer
}
pointer.GetRemote().RemotePieces = pieces
pointer.LastRepaired = ref.LastRepaired
pointer.RepairCount = ref.RepairCount
// marshal the pointer
newPointerBytes, err := proto.Marshal(pointer)
if err != nil {

View File

@ -244,6 +244,9 @@ func (obs *checkerObserver) RemoteSegment(ctx context.Context, path metainfo.Sco
mon.IntVal("checker_segment_total_count").Observe(int64(len(pieces)))
mon.IntVal("checker_segment_healthy_count").Observe(int64(numHealthy))
segmentAge := time.Since(pointer.CreationDate)
mon.IntVal("checker_segment_age").Observe(int64(segmentAge.Seconds()))
redundancy := pointer.Remote.Redundancy
// we repair when the number of healthy pieces is less than or equal to the repair threshold and is greater or equal to
@ -293,6 +296,14 @@ func (obs *checkerObserver) RemoteSegment(ctx context.Context, path metainfo.Sco
}
}
var segmentAge time.Duration
if pointer.CreationDate.Before(pointer.LastRepaired) {
segmentAge = time.Since(pointer.LastRepaired)
} else {
segmentAge = time.Since(pointer.CreationDate)
}
mon.IntVal("checker_segment_time_until_irreparable").Observe(int64(segmentAge.Seconds()))
obs.monStats.remoteSegmentsLost++
// make an entry into the irreparable table
segmentInfo := &pb.IrreparableSegment{

View File

@ -248,9 +248,26 @@ func (repairer *SegmentRepairer) Repair(ctx context.Context, path storj.Path) (s
// add pieces that failed piece hashes verification to the removal list
toRemove = append(toRemove, failedPieces...)
pointer.LastRepaired = time.Now().UTC()
pointer.RepairCount++
// Update the segment pointer in the metainfo
_, err = repairer.metainfo.UpdatePieces(ctx, path, pointer, repairedPieces, toRemove)
return err == nil, err
if err != nil {
return false, err
}
var segmentAge time.Duration
if pointer.CreationDate.Before(pointer.LastRepaired) {
segmentAge = time.Since(pointer.LastRepaired)
} else {
segmentAge = time.Since(pointer.CreationDate)
}
mon.IntVal("segment_time_until_repair").Observe(int64(segmentAge.Seconds()))
mon.IntVal("segment_repair_count").Observe(int64(pointer.RepairCount))
return true, nil
}
func (repairer *SegmentRepairer) updateAuditFailStatus(ctx context.Context, failedAuditNodeIDs storj.NodeIDList) (failedNum int, err error) {