instant notification of new volumes added or deleted

This commit is contained in:
Chris Lu 2018-08-24 01:26:56 -07:00
parent 5ccf8e8078
commit 76cbe8bf33
7 changed files with 170 additions and 137 deletions

View file

@ -203,7 +203,6 @@ func (m *Entry) GetAttributes() *FuseAttributes {
} }
type EventNotification struct { type EventNotification struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
OldEntry *Entry `protobuf:"bytes,2,opt,name=old_entry,json=oldEntry" json:"old_entry,omitempty"` OldEntry *Entry `protobuf:"bytes,2,opt,name=old_entry,json=oldEntry" json:"old_entry,omitempty"`
NewEntry *Entry `protobuf:"bytes,3,opt,name=new_entry,json=newEntry" json:"new_entry,omitempty"` NewEntry *Entry `protobuf:"bytes,3,opt,name=new_entry,json=newEntry" json:"new_entry,omitempty"`
} }
@ -213,13 +212,6 @@ func (m *EventNotification) String() string { return proto.CompactTex
func (*EventNotification) ProtoMessage() {} func (*EventNotification) ProtoMessage() {}
func (*EventNotification) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } func (*EventNotification) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (m *EventNotification) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *EventNotification) GetOldEntry() *Entry { func (m *EventNotification) GetOldEntry() *Entry {
if m != nil { if m != nil {
return m.OldEntry return m.OldEntry
@ -1122,13 +1114,13 @@ var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("filer.proto", fileDescriptor0) } func init() { proto.RegisterFile("filer.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1154 bytes of a gzipped FileDescriptorProto // 1152 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0xdb, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0xcd, 0x6e, 0xdb, 0x46,
0x10, 0x36, 0x25, 0x4b, 0x36, 0x47, 0x72, 0x1a, 0xaf, 0x9c, 0x84, 0x55, 0xec, 0x54, 0xd9, 0x26, 0x10, 0x36, 0x25, 0x4b, 0x36, 0x47, 0x72, 0x1a, 0xaf, 0x9c, 0x84, 0x55, 0xec, 0x54, 0xd9, 0x26,
0x85, 0x83, 0x1a, 0x86, 0xe1, 0xf6, 0x90, 0xb6, 0x28, 0xd0, 0xc0, 0x76, 0x82, 0x00, 0x4e, 0x02, 0x85, 0x83, 0x1a, 0x86, 0xe1, 0xf6, 0x90, 0xb6, 0x28, 0xd0, 0xc0, 0x76, 0x82, 0x00, 0x4e, 0x02,
0xd0, 0x75, 0x81, 0xa2, 0x07, 0x81, 0x26, 0x47, 0xee, 0xc2, 0x14, 0xa9, 0x72, 0x97, 0x76, 0xdd, 0xd0, 0x75, 0x81, 0xa2, 0x07, 0x81, 0x26, 0x47, 0xee, 0xc2, 0x14, 0xa9, 0x72, 0x97, 0x76, 0xdd,
0x6b, 0x8f, 0x3d, 0xf5, 0x21, 0x8a, 0xde, 0xfb, 0x00, 0xbd, 0xf4, 0xc5, 0x8a, 0xfd, 0xa1, 0xb4, 0x6b, 0x8f, 0x3d, 0xf5, 0x21, 0x8a, 0xde, 0xfb, 0x00, 0xbd, 0xf4, 0xc5, 0x8a, 0xfd, 0xa1, 0xb4,
0x14, 0x29, 0x27, 0x39, 0xe4, 0xb6, 0x3b, 0x33, 0x3b, 0x33, 0xdf, 0xec, 0xcc, 0xc7, 0x25, 0x74, 0x14, 0x29, 0x27, 0x39, 0xe4, 0xb6, 0x3b, 0x33, 0x3b, 0x33, 0xdf, 0xec, 0xcc, 0xb7, 0x24, 0x74,
0x46, 0x2c, 0xc6, 0x6c, 0x77, 0x92, 0xa5, 0x22, 0x25, 0xab, 0x6a, 0x33, 0x9c, 0x9c, 0xd1, 0x37, 0x46, 0x2c, 0xc6, 0x6c, 0x77, 0x92, 0xa5, 0x22, 0x25, 0xab, 0x6a, 0x33, 0x9c, 0x9c, 0xd1, 0x37,
0x70, 0xff, 0x38, 0x4d, 0x2f, 0xf2, 0xc9, 0x21, 0xcb, 0x30, 0x14, 0x69, 0x76, 0x7d, 0x94, 0x88, 0x70, 0xff, 0x38, 0x4d, 0x2f, 0xf2, 0xc9, 0x21, 0xcb, 0x30, 0x14, 0x69, 0x76, 0x7d, 0x94, 0x88,
0xec, 0xda, 0xc7, 0x5f, 0x72, 0xe4, 0x82, 0x6c, 0x82, 0x1b, 0x15, 0x0a, 0xcf, 0x19, 0x38, 0xdb, 0xec, 0xda, 0xc7, 0x5f, 0x72, 0xe4, 0x82, 0x6c, 0x82, 0x1b, 0x15, 0x0a, 0xcf, 0x19, 0x38, 0xdb,
@ -1144,56 +1136,55 @@ var fileDescriptor0 = []byte{
0x9d, 0x59, 0x9d, 0xc9, 0x43, 0xe8, 0x32, 0x3e, 0x9c, 0x15, 0xa3, 0xa1, 0xf2, 0xeb, 0x30, 0x3e, 0x9d, 0x59, 0x9d, 0xc9, 0x43, 0xe8, 0x32, 0x3e, 0x9c, 0x15, 0xa3, 0xa1, 0xf2, 0xeb, 0x30, 0x3e,
0xad, 0x3b, 0xf9, 0x1c, 0xda, 0xe1, 0xcf, 0x79, 0x72, 0xc1, 0xbd, 0xa6, 0x0a, 0xd5, 0x9b, 0x85, 0xad, 0x3b, 0xf9, 0x1c, 0xda, 0xe1, 0xcf, 0x79, 0x72, 0xc1, 0xbd, 0xa6, 0x0a, 0xd5, 0x9b, 0x85,
0x92, 0x60, 0x0f, 0xa4, 0xce, 0x37, 0x26, 0xe4, 0x29, 0x40, 0x20, 0x44, 0xc6, 0xce, 0x72, 0x81, 0x92, 0x60, 0x0f, 0xa4, 0xce, 0x37, 0x26, 0xe4, 0x29, 0x40, 0x20, 0x44, 0xc6, 0xce, 0x72, 0x81,
0x5c, 0xa1, 0xed, 0xec, 0x7b, 0xd6, 0x81, 0x9c, 0xe3, 0xb3, 0xa9, 0xde, 0xb7, 0x6c, 0xe9, 0xef, 0x5c, 0xa1, 0xed, 0xec, 0x7b, 0xd6, 0x81, 0x9c, 0xe3, 0xb3, 0xa9, 0xde, 0xb7, 0x6c, 0x69, 0x0a,
0x0e, 0xac, 0x1f, 0x5d, 0x62, 0x22, 0x5e, 0xa7, 0x82, 0x8d, 0x58, 0x18, 0x08, 0x96, 0x26, 0xb5, 0xeb, 0x47, 0x97, 0x98, 0x88, 0xd7, 0xa9, 0x60, 0x23, 0x16, 0x06, 0x82, 0xa5, 0x09, 0xd9, 0x01,
0x39, 0xef, 0x80, 0x9b, 0xc6, 0xd1, 0x50, 0xdf, 0x7f, 0xa3, 0xfe, 0xfe, 0x57, 0xd3, 0x38, 0xd2, 0x37, 0x8d, 0xa3, 0xa1, 0xbe, 0xea, 0x46, 0xfd, 0x55, 0xaf, 0xa6, 0x71, 0xa4, 0x01, 0xee, 0x80,
0xa8, 0x77, 0xc0, 0x4d, 0xf0, 0xca, 0x58, 0x37, 0x17, 0x58, 0x27, 0x78, 0xa5, 0x56, 0x74, 0x04, 0x9b, 0xe0, 0x95, 0xb1, 0x6e, 0x2e, 0xb0, 0x4e, 0xf0, 0x4a, 0xad, 0xe8, 0x08, 0xdc, 0x69, 0xfe,
0xee, 0x14, 0x14, 0xb9, 0x07, 0x2b, 0xd2, 0x70, 0xc8, 0x22, 0x13, 0xbf, 0x2d, 0xb7, 0x2f, 0x23, 0xe4, 0x1e, 0xac, 0x48, 0xc3, 0x21, 0x8b, 0x4c, 0x79, 0xda, 0x72, 0xfb, 0x32, 0x92, 0xcd, 0x90,
0xd9, 0x21, 0xe9, 0x68, 0xc4, 0x51, 0xa8, 0xf0, 0x4d, 0xdf, 0xec, 0x64, 0xb6, 0x9c, 0xfd, 0xa6, 0x8e, 0x46, 0x1c, 0x85, 0x0a, 0xdf, 0xf4, 0xcd, 0x4e, 0x16, 0x93, 0xb3, 0xdf, 0xf4, 0xfd, 0x2f,
0x9b, 0x62, 0xd9, 0x57, 0x6b, 0x79, 0xaf, 0x63, 0xc1, 0xc6, 0xa8, 0x8a, 0xd1, 0xf4, 0xf5, 0x86, 0xfb, 0x6a, 0x2d, 0xaf, 0x70, 0x2c, 0xd8, 0x18, 0x15, 0xee, 0xa6, 0xaf, 0x37, 0xf4, 0x8f, 0x06,
0xfe, 0xd1, 0x80, 0x5b, 0xe5, 0x62, 0x90, 0xfb, 0xe0, 0xaa, 0x68, 0xca, 0x83, 0xa3, 0x3c, 0xa8, 0xdc, 0x2a, 0xe3, 0x26, 0xf7, 0xc1, 0x55, 0xd1, 0x94, 0x07, 0x47, 0x79, 0x50, 0xb3, 0x74, 0x52,
0x01, 0x3b, 0x29, 0x79, 0x69, 0x58, 0x5e, 0xa6, 0x47, 0xc6, 0x69, 0xa4, 0x83, 0xae, 0xe9, 0x23, 0xf2, 0xd2, 0xb0, 0xbc, 0x4c, 0x8f, 0x8c, 0xd3, 0x48, 0x07, 0x5d, 0xd3, 0x47, 0x5e, 0xa5, 0x11,
0xaf, 0xd2, 0x08, 0xc9, 0x6d, 0x68, 0xe6, 0x2c, 0x52, 0x61, 0xd7, 0x7c, 0xb9, 0x94, 0x92, 0x73, 0x92, 0xdb, 0xd0, 0xcc, 0x59, 0xa4, 0xc2, 0xae, 0xf9, 0x72, 0x29, 0x25, 0xe7, 0x2c, 0x32, 0xbd,
0x16, 0x99, 0x06, 0x93, 0x4b, 0x09, 0x24, 0xcc, 0x94, 0xdf, 0xb6, 0x06, 0xa2, 0x77, 0x12, 0xc8, 0x24, 0x97, 0x12, 0x48, 0x98, 0x29, 0xbf, 0x6d, 0x0d, 0x44, 0xef, 0x24, 0x90, 0xb1, 0x94, 0xae,
0x58, 0x4a, 0x57, 0x74, 0xd9, 0xe5, 0x9a, 0x0c, 0xa0, 0x93, 0xe1, 0x24, 0x36, 0x37, 0xe3, 0xad, 0xe8, 0xae, 0x90, 0x6b, 0x32, 0x80, 0x4e, 0x86, 0x93, 0xd8, 0xdc, 0x82, 0xb7, 0xaa, 0x54, 0xb6,
0x2a, 0x95, 0x2d, 0x22, 0x0f, 0x00, 0xc2, 0x34, 0x8e, 0x31, 0x54, 0x06, 0xae, 0x32, 0xb0, 0x24, 0x88, 0x3c, 0x00, 0x08, 0xd3, 0x38, 0xc6, 0x50, 0x19, 0xb8, 0xca, 0xc0, 0x92, 0xc8, 0x7a, 0x0a,
0xb2, 0x9e, 0x42, 0xc4, 0x43, 0x8e, 0xa1, 0x07, 0x03, 0x67, 0xbb, 0xe5, 0xb7, 0x85, 0x88, 0x4f, 0x11, 0x0f, 0x39, 0x86, 0x1e, 0x0c, 0x9c, 0xed, 0x96, 0xdf, 0x16, 0x22, 0x3e, 0xc1, 0x90, 0x9e,
0x30, 0xa4, 0xe7, 0xf0, 0xf1, 0x0b, 0x54, 0x4d, 0x7e, 0x6d, 0x75, 0x87, 0x19, 0xd6, 0xba, 0x16, 0xc3, 0xc7, 0x2f, 0x50, 0xf5, 0xf3, 0xb5, 0xd5, 0x08, 0x66, 0x2e, 0xeb, 0x3a, 0x74, 0x0b, 0x60,
0xd8, 0x02, 0x98, 0x04, 0x19, 0x26, 0x42, 0xb6, 0xae, 0x19, 0x53, 0x57, 0x4b, 0x0e, 0x59, 0x66, 0x12, 0x64, 0x98, 0x08, 0xd9, 0xa5, 0x66, 0x22, 0x5d, 0x2d, 0x39, 0x64, 0x99, 0x7d, 0x71, 0x4d,
0x5f, 0x5c, 0xd3, 0xbe, 0x38, 0xd9, 0x64, 0xfd, 0xba, 0x48, 0x66, 0xac, 0xca, 0xdd, 0xeb, 0xbc, 0xfb, 0xe2, 0xe8, 0xef, 0x0e, 0xf4, 0xeb, 0x22, 0x99, 0x09, 0x2a, 0x37, 0xaa, 0xf3, 0xee, 0x8d,
0x7b, 0xf7, 0x5a, 0x43, 0xd2, 0x78, 0xeb, 0x90, 0xd0, 0x3d, 0xb8, 0xf3, 0x02, 0x85, 0x92, 0xa7, 0x6a, 0xcd, 0x43, 0xe3, 0xad, 0xf3, 0x40, 0xf7, 0xe0, 0xce, 0x0b, 0x14, 0x4a, 0x9e, 0x26, 0x02,
0x89, 0xc0, 0x44, 0x14, 0x50, 0x17, 0x35, 0x1c, 0xdd, 0x87, 0xbb, 0xf3, 0x27, 0x4c, 0xca, 0x1e, 0x13, 0x51, 0x40, 0x5d, 0xd4, 0x70, 0x74, 0x1f, 0xee, 0xce, 0x9f, 0x30, 0x29, 0x7b, 0xb0, 0x12,
0xac, 0x84, 0x5a, 0xa4, 0x8e, 0x74, 0xfd, 0x62, 0x4b, 0x7f, 0x04, 0x72, 0x90, 0x61, 0x20, 0xf0, 0x6a, 0x91, 0x3a, 0xd2, 0xf5, 0x8b, 0x2d, 0xfd, 0x11, 0xc8, 0x41, 0x86, 0x81, 0xc0, 0xf7, 0x60,
0x3d, 0xa8, 0x78, 0x4a, 0xab, 0x8d, 0x1b, 0x69, 0xf5, 0x0e, 0xf4, 0x4a, 0xae, 0x75, 0x2e, 0x32, 0xdd, 0x29, 0x83, 0x36, 0x6e, 0x64, 0xd0, 0x3b, 0xd0, 0x2b, 0xb9, 0xd6, 0xb9, 0xc8, 0x88, 0xa7,
0xe2, 0xe9, 0x24, 0xfa, 0x50, 0x11, 0x4b, 0xae, 0x4d, 0xc4, 0x7f, 0x1c, 0x20, 0x87, 0x18, 0xe3, 0x93, 0xe8, 0x43, 0x45, 0x2c, 0xb9, 0x36, 0x11, 0xff, 0x71, 0x80, 0x1c, 0x62, 0x8c, 0xef, 0x15,
0x7b, 0x85, 0xac, 0xf9, 0xde, 0x54, 0x78, 0xb0, 0x59, 0xe5, 0xc1, 0x47, 0x70, 0x4b, 0x9a, 0xa8, 0xb2, 0xe6, 0x69, 0xa9, 0x50, 0x5e, 0xb3, 0x4a, 0x79, 0x8f, 0xe0, 0x96, 0x34, 0x51, 0xd1, 0x86,
0x68, 0xc3, 0x28, 0x10, 0x81, 0x21, 0xf3, 0x2e, 0xe3, 0x3a, 0x85, 0xc3, 0x40, 0x04, 0xc6, 0x51, 0x51, 0x20, 0x02, 0xc3, 0xdb, 0x5d, 0xc6, 0x75, 0x0a, 0x87, 0x81, 0x08, 0x8c, 0xa3, 0x0c, 0xc3,
0x86, 0x61, 0x9e, 0x49, 0x7e, 0x57, 0xc3, 0xa6, 0x1c, 0xf9, 0x85, 0x48, 0x62, 0x29, 0xe5, 0x6c, 0x3c, 0x93, 0x54, 0xae, 0x86, 0x4d, 0x39, 0xf2, 0x0b, 0x91, 0xc4, 0x52, 0xca, 0xd9, 0x60, 0xf9,
0xb0, 0xfc, 0xed, 0x40, 0xef, 0x19, 0xe7, 0xec, 0x3c, 0xf9, 0x21, 0x8d, 0xf3, 0x31, 0x16, 0x60, 0xdb, 0x81, 0xde, 0x33, 0xce, 0xd9, 0x79, 0xf2, 0x43, 0x1a, 0xe7, 0x63, 0x2c, 0xc0, 0x6c, 0x40,
0x36, 0xa0, 0x15, 0xa6, 0xb9, 0xb9, 0xdf, 0x96, 0xaf, 0x37, 0x73, 0xb3, 0xd6, 0xa8, 0xcc, 0xda, 0x2b, 0x4c, 0x73, 0x73, 0xbf, 0x2d, 0x5f, 0x6f, 0xe6, 0x66, 0xad, 0x51, 0x99, 0xb5, 0xb9, 0x69,
0xdc, 0xb4, 0x36, 0xab, 0xd3, 0x6a, 0x4d, 0xe3, 0xb2, 0x3d, 0x8d, 0xe4, 0x13, 0xe8, 0x48, 0x78, 0x6d, 0x56, 0xa7, 0xd5, 0x9a, 0xc6, 0x65, 0x7b, 0x1a, 0xc9, 0x27, 0xd0, 0x91, 0xf0, 0x86, 0x21,
0xc3, 0x10, 0x13, 0x81, 0x99, 0x42, 0xe0, 0xfa, 0x20, 0x45, 0x07, 0x4a, 0x42, 0x2f, 0x61, 0xa3, 0x26, 0x02, 0x33, 0x85, 0xc0, 0xf5, 0x41, 0x8a, 0x0e, 0x94, 0x84, 0x5e, 0xc2, 0x46, 0x39, 0x51,
0x9c, 0xa8, 0xe9, 0xc5, 0x85, 0x7c, 0x29, 0xa9, 0x28, 0x8b, 0x4d, 0x96, 0x72, 0xa9, 0x06, 0x38, 0xd3, 0x8b, 0x0b, 0xf9, 0x52, 0x52, 0x51, 0x16, 0x9b, 0x2c, 0xe5, 0x52, 0x0d, 0x70, 0x7e, 0x16,
0x3f, 0x8b, 0x59, 0x38, 0x94, 0x8a, 0xa6, 0x19, 0x60, 0x25, 0x39, 0xcd, 0xe2, 0x19, 0xe6, 0x65, 0xb3, 0x70, 0x28, 0x15, 0x4d, 0x33, 0xc0, 0x4a, 0x72, 0x9a, 0xc5, 0x33, 0xcc, 0xcb, 0x16, 0x66,
0x0b, 0x33, 0xfd, 0x12, 0x7a, 0xfa, 0x51, 0x50, 0x2e, 0xd0, 0x16, 0xc0, 0xa5, 0x12, 0x0c, 0x59, 0xfa, 0x25, 0xf4, 0xf4, 0xfb, 0x5f, 0x2e, 0xd0, 0x16, 0xc0, 0xa5, 0x12, 0x0c, 0x59, 0xa4, 0x9f,
0xa4, 0xbf, 0x87, 0xae, 0xef, 0x6a, 0xc9, 0xcb, 0x88, 0xd3, 0x6f, 0xc1, 0x3d, 0x4e, 0x35, 0x66, 0x3e, 0xd7, 0x77, 0xb5, 0xe4, 0x65, 0xc4, 0xe9, 0xb7, 0xe0, 0x1e, 0xa7, 0x1a, 0x33, 0x27, 0x7b,
0x4e, 0xf6, 0xc0, 0x8d, 0x8b, 0x8d, 0xf9, 0x74, 0x92, 0x59, 0xcb, 0x15, 0x76, 0xfe, 0xcc, 0x88, 0xe0, 0xc6, 0xc5, 0xc6, 0xbc, 0x92, 0x64, 0xd6, 0x72, 0x85, 0x9d, 0x3f, 0x33, 0xa2, 0xdf, 0xc0,
0x7e, 0x03, 0xab, 0x85, 0xb8, 0xc0, 0xe1, 0x2c, 0xc2, 0xd1, 0x98, 0xc3, 0x41, 0xff, 0x73, 0x60, 0x6a, 0x21, 0x2e, 0x70, 0x38, 0x8b, 0x70, 0x34, 0xe6, 0x70, 0xd0, 0xff, 0x1c, 0xd8, 0x28, 0xa7,
0xa3, 0x9c, 0xb2, 0x29, 0xd5, 0x29, 0xac, 0x4d, 0x43, 0x0c, 0xc7, 0xc1, 0xc4, 0xe4, 0xb2, 0x67, 0x6c, 0x4a, 0x75, 0x0a, 0x6b, 0xd3, 0x10, 0xc3, 0x71, 0x30, 0x31, 0xb9, 0xec, 0xd9, 0xb9, 0x54,
0xe7, 0x52, 0x3d, 0x36, 0x4d, 0x90, 0xbf, 0x0a, 0x26, 0xba, 0x7b, 0xba, 0xb1, 0x25, 0xea, 0x7f, 0x8f, 0x4d, 0x13, 0xe4, 0xaf, 0x82, 0x89, 0xee, 0x9e, 0x6e, 0x6c, 0x89, 0xfa, 0xdf, 0xc3, 0x7a,
0x0f, 0xeb, 0x15, 0x13, 0x99, 0xf5, 0x05, 0x16, 0x73, 0x20, 0x97, 0xe4, 0x09, 0xb4, 0x2e, 0x83, 0xc5, 0x44, 0x66, 0x7d, 0x81, 0xc5, 0x1c, 0xc8, 0x25, 0x79, 0x02, 0xad, 0xcb, 0x20, 0xce, 0xd1,
0x38, 0x47, 0x33, 0x74, 0xbd, 0x6a, 0x05, 0xb8, 0xaf, 0x2d, 0xbe, 0x6e, 0x3c, 0x75, 0xe8, 0x57, 0x0c, 0x5d, 0xaf, 0x5a, 0x01, 0xee, 0x6b, 0x8b, 0xaf, 0x1b, 0x4f, 0x1d, 0xfa, 0x15, 0xdc, 0xd3,
0x70, 0x4f, 0x37, 0xec, 0xc1, 0xb4, 0xbf, 0x8a, 0xda, 0x97, 0xdb, 0xd0, 0x99, 0x6f, 0x43, 0xda, 0x0d, 0x7b, 0x30, 0xed, 0xaf, 0xa2, 0xf6, 0xe5, 0x36, 0x74, 0xe6, 0xdb, 0x90, 0xf6, 0xc1, 0xab,
0x07, 0xaf, 0x7a, 0x54, 0x83, 0xd9, 0xff, 0xb3, 0x0d, 0xdd, 0x13, 0x0c, 0xae, 0x10, 0x23, 0xc9, 0x1e, 0xd5, 0x60, 0xf6, 0xff, 0x6c, 0x43, 0xf7, 0x04, 0x83, 0x2b, 0xc4, 0x48, 0x32, 0x5b, 0x46,
0x6c, 0x19, 0x39, 0x2f, 0x8a, 0x55, 0x7e, 0xf4, 0x91, 0xc7, 0xf3, 0x55, 0xa9, 0x7d, 0x65, 0xf6, 0xce, 0x8b, 0x62, 0x95, 0xbf, 0xef, 0xc8, 0xe3, 0xf9, 0xaa, 0xd4, 0x7e, 0x50, 0xf6, 0x3f, 0x7b,
0x3f, 0x7b, 0x9b, 0x99, 0x19, 0xb4, 0x25, 0x72, 0x0c, 0x1d, 0xeb, 0x55, 0x45, 0x36, 0xad, 0x83, 0x9b, 0x99, 0x19, 0xb4, 0x25, 0x72, 0x0c, 0x1d, 0xeb, 0x03, 0x8a, 0x6c, 0x5a, 0x07, 0x2b, 0xdf,
0x95, 0xc7, 0x62, 0x7f, 0x6b, 0x81, 0x76, 0xea, 0x2d, 0x00, 0x52, 0xfd, 0xa6, 0x90, 0x4f, 0x67, 0x85, 0xfd, 0xad, 0x05, 0xda, 0xa9, 0xb7, 0x00, 0x48, 0xf5, 0x4d, 0x21, 0x9f, 0xce, 0x8e, 0x2d,
0xc7, 0x16, 0x7e, 0xdb, 0xfa, 0x8f, 0x6e, 0x36, 0xb2, 0x13, 0xb6, 0x08, 0xd7, 0x4e, 0xb8, 0x4a, 0x7c, 0xdb, 0xfa, 0x8f, 0x6e, 0x36, 0xb2, 0x13, 0xb6, 0x08, 0xd7, 0x4e, 0xb8, 0x4a, 0xf1, 0x76,
0xf1, 0x76, 0xc2, 0x75, 0x2c, 0xad, 0xbc, 0x59, 0x64, 0x6a, 0x7b, 0xab, 0xd2, 0xb7, 0xed, 0xad, 0xc2, 0x75, 0x2c, 0xad, 0xbc, 0x59, 0x64, 0x6a, 0x7b, 0xab, 0xd2, 0xb7, 0xed, 0xad, 0x8e, 0x81,
0x8e, 0x81, 0x95, 0x37, 0x8b, 0xce, 0x6c, 0x6f, 0x55, 0x66, 0xb6, 0xbd, 0xd5, 0x71, 0xe0, 0x12, 0x95, 0x37, 0x8b, 0xce, 0x6c, 0x6f, 0x55, 0x66, 0xb6, 0xbd, 0xd5, 0x71, 0xe0, 0x12, 0x79, 0x03,
0x79, 0x03, 0x5d, 0x9b, 0x5b, 0x88, 0x75, 0xa0, 0x86, 0x1c, 0xfb, 0x0f, 0x16, 0xa9, 0x6d, 0x87, 0x5d, 0x9b, 0x5b, 0x88, 0x75, 0xa0, 0x86, 0x1c, 0xfb, 0x0f, 0x16, 0xa9, 0x6d, 0x87, 0xf6, 0x28,
0xf6, 0x28, 0xd9, 0x0e, 0x6b, 0xc8, 0xc4, 0x76, 0x58, 0x37, 0x81, 0x74, 0x89, 0xfc, 0x04, 0xb7, 0xd9, 0x0e, 0x6b, 0xc8, 0xc4, 0x76, 0x58, 0x37, 0x81, 0x74, 0x89, 0xfc, 0x04, 0xb7, 0xe7, 0x5b,
0xe7, 0x5b, 0x9a, 0x3c, 0x9c, 0x87, 0x55, 0x99, 0x94, 0x3e, 0xbd, 0xc9, 0xa4, 0x70, 0x7e, 0xd6, 0x9a, 0x3c, 0x9c, 0x87, 0x55, 0x99, 0x94, 0x3e, 0xbd, 0xc9, 0xa4, 0x70, 0x7e, 0xd6, 0x56, 0x3f,
0x56, 0x7f, 0x56, 0x5f, 0xfc, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x41, 0x0a, 0x10, 0x9d, 0x68, 0x0d, 0x51, 0x5f, 0xfc, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x81, 0x71, 0x63, 0x3e, 0x53, 0x0d, 0x00, 0x00,
0x00, 0x00,
} }

View file

@ -49,6 +49,9 @@ type Heartbeat struct {
Rack string `protobuf:"bytes,7,opt,name=rack" json:"rack,omitempty"` Rack string `protobuf:"bytes,7,opt,name=rack" json:"rack,omitempty"`
AdminPort uint32 `protobuf:"varint,8,opt,name=admin_port,json=adminPort" json:"admin_port,omitempty"` AdminPort uint32 `protobuf:"varint,8,opt,name=admin_port,json=adminPort" json:"admin_port,omitempty"`
Volumes []*VolumeInformationMessage `protobuf:"bytes,9,rep,name=volumes" json:"volumes,omitempty"` Volumes []*VolumeInformationMessage `protobuf:"bytes,9,rep,name=volumes" json:"volumes,omitempty"`
// delta volume ids
NewVids []uint32 `protobuf:"varint,10,rep,packed,name=new_vids,json=newVids" json:"new_vids,omitempty"`
DeletedVids []uint32 `protobuf:"varint,11,rep,packed,name=deleted_vids,json=deletedVids" json:"deleted_vids,omitempty"`
} }
func (m *Heartbeat) Reset() { *m = Heartbeat{} } func (m *Heartbeat) Reset() { *m = Heartbeat{} }
@ -119,6 +122,20 @@ func (m *Heartbeat) GetVolumes() []*VolumeInformationMessage {
return nil return nil
} }
func (m *Heartbeat) GetNewVids() []uint32 {
if m != nil {
return m.NewVids
}
return nil
}
func (m *Heartbeat) GetDeletedVids() []uint32 {
if m != nil {
return m.DeletedVids
}
return nil
}
type HeartbeatResponse struct { type HeartbeatResponse struct {
VolumeSizeLimit uint64 `protobuf:"varint,1,opt,name=volumeSizeLimit" json:"volumeSizeLimit,omitempty"` VolumeSizeLimit uint64 `protobuf:"varint,1,opt,name=volumeSizeLimit" json:"volumeSizeLimit,omitempty"`
SecretKey string `protobuf:"bytes,2,opt,name=secretKey" json:"secretKey,omitempty"` SecretKey string `protobuf:"bytes,2,opt,name=secretKey" json:"secretKey,omitempty"`
@ -536,50 +553,51 @@ var _Seaweed_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("seaweed.proto", fileDescriptor0) } func init() { proto.RegisterFile("seaweed.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 708 bytes of a gzipped FileDescriptorProto // 726 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x54, 0x41, 0x6f, 0xf3, 0x44, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x7c, 0x54, 0xc1, 0x6e, 0xdb, 0x38,
0x10, 0xc5, 0x49, 0xbe, 0x24, 0x9e, 0x7c, 0xc9, 0x97, 0x2e, 0x08, 0xb9, 0xa5, 0x94, 0x60, 0x2e, 0x10, 0x5d, 0xd9, 0x8e, 0x6d, 0x8d, 0x23, 0xc7, 0xe1, 0x2e, 0x16, 0x4a, 0x36, 0x9b, 0xf5, 0x6a,
0x46, 0xa0, 0x08, 0x95, 0x33, 0x97, 0x46, 0x45, 0x54, 0x2d, 0x6a, 0xe5, 0x88, 0x1e, 0xb8, 0x58, 0x2f, 0x5a, 0xec, 0xc2, 0x28, 0xd2, 0x73, 0x2f, 0x31, 0x52, 0x34, 0x48, 0x8a, 0x04, 0x32, 0x9a,
0x1b, 0xef, 0xb4, 0x5a, 0x75, 0xbd, 0x36, 0xbb, 0x9b, 0x36, 0xee, 0x85, 0x7f, 0xc3, 0x8d, 0xbf, 0x43, 0x2f, 0x02, 0x2d, 0x4d, 0x02, 0x22, 0x14, 0xa5, 0x92, 0x74, 0x62, 0xe5, 0xd2, 0xbf, 0xe9,
0xc0, 0x89, 0x1f, 0x86, 0x76, 0xd7, 0x4e, 0x42, 0x28, 0xb7, 0xd9, 0x37, 0x6f, 0xbc, 0xe3, 0xf7, 0x67, 0xf4, 0xd4, 0xbf, 0xe9, 0x4f, 0x14, 0xa4, 0x24, 0xc7, 0x75, 0xd2, 0xde, 0x86, 0x6f, 0x66,
0x66, 0x16, 0xc6, 0x1a, 0xe9, 0x0b, 0x22, 0x9b, 0x57, 0xaa, 0x34, 0x25, 0x09, 0x0b, 0xaa, 0x0d, 0xc8, 0xe1, 0x7b, 0x33, 0x03, 0x9e, 0x42, 0x7a, 0x8f, 0x98, 0x4e, 0x0a, 0x99, 0xeb, 0x9c, 0xb8,
0xaa, 0xac, 0x5a, 0xc5, 0x7f, 0x76, 0x20, 0xfc, 0x09, 0xa9, 0x32, 0x2b, 0xa4, 0x86, 0x4c, 0xa0, 0x19, 0x55, 0x1a, 0x65, 0x5c, 0xcc, 0x83, 0xaf, 0x2d, 0x70, 0xdf, 0x20, 0x95, 0x7a, 0x8e, 0x54,
0xc3, 0xab, 0x28, 0x98, 0x05, 0x49, 0x98, 0x76, 0x78, 0x45, 0x08, 0xf4, 0xaa, 0x52, 0x99, 0xa8, 0x93, 0x21, 0xb4, 0x58, 0xe1, 0x3b, 0x63, 0x27, 0x74, 0xa3, 0x16, 0x2b, 0x08, 0x81, 0x4e, 0x91,
0x33, 0x0b, 0x92, 0x71, 0xea, 0x62, 0xf2, 0x39, 0x40, 0xb5, 0x5e, 0x09, 0x9e, 0x67, 0x6b, 0x25, 0x4b, 0xed, 0xb7, 0xc6, 0x4e, 0xe8, 0x45, 0xd6, 0x26, 0x7f, 0x02, 0x14, 0x8b, 0x39, 0x67, 0x49,
0xa2, 0xae, 0xe3, 0x86, 0x1e, 0xf9, 0x45, 0x09, 0x92, 0xc0, 0xb4, 0xa0, 0x9b, 0xec, 0xb9, 0x14, 0xbc, 0x90, 0xdc, 0x6f, 0xdb, 0x58, 0xb7, 0x42, 0xde, 0x49, 0x4e, 0x42, 0x18, 0x65, 0x74, 0x19,
0xeb, 0x02, 0xb3, 0xbc, 0x5c, 0x4b, 0x13, 0xf5, 0x5c, 0xf9, 0xa4, 0xa0, 0x9b, 0x7b, 0x07, 0x2f, 0xdf, 0xe5, 0x7c, 0x91, 0x61, 0x9c, 0xe4, 0x0b, 0xa1, 0xfd, 0x8e, 0x4d, 0x1f, 0x66, 0x74, 0x79,
0x2c, 0x4a, 0x66, 0xf0, 0xde, 0x32, 0x1f, 0xb8, 0xc0, 0xec, 0x09, 0xeb, 0xe8, 0xdd, 0x2c, 0x48, 0x65, 0xe1, 0xa9, 0x41, 0xc9, 0x18, 0xb6, 0x4d, 0xe4, 0x35, 0xe3, 0x18, 0xdf, 0x62, 0xe9, 0x6f,
0x7a, 0x29, 0x14, 0x74, 0xf3, 0x23, 0x17, 0x78, 0x8d, 0x35, 0xf9, 0x02, 0x46, 0x8c, 0x1a, 0x9a, 0x8d, 0x9d, 0xb0, 0x13, 0x41, 0x46, 0x97, 0xaf, 0x19, 0xc7, 0x33, 0x2c, 0xc9, 0x5f, 0x30, 0x48,
0xe5, 0x28, 0x0d, 0xaa, 0xa8, 0xef, 0xee, 0x02, 0x0b, 0x2d, 0x1c, 0x62, 0xfb, 0x53, 0x34, 0x7f, 0xa9, 0xa6, 0x71, 0x82, 0x42, 0xa3, 0xf4, 0xbb, 0xf6, 0x2d, 0x30, 0xd0, 0xd4, 0x22, 0xa6, 0x3e,
0x8a, 0x06, 0x2e, 0xe3, 0x62, 0xdb, 0x1f, 0x65, 0x05, 0x97, 0x99, 0xeb, 0x7c, 0xe8, 0xae, 0x0e, 0x49, 0x93, 0x5b, 0xbf, 0x67, 0x3d, 0xd6, 0x36, 0xf5, 0xd1, 0x34, 0x63, 0x22, 0xb6, 0x95, 0xf7,
0x1d, 0x72, 0x67, 0xdb, 0xff, 0x01, 0x06, 0xbe, 0x37, 0x1d, 0x85, 0xb3, 0x6e, 0x32, 0x3a, 0xff, 0xed, 0xd3, 0xae, 0x45, 0x2e, 0x4d, 0xf9, 0xaf, 0xa0, 0x57, 0xd5, 0xa6, 0x7c, 0x77, 0xdc, 0x0e,
0x6a, 0xbe, 0x55, 0x63, 0xee, 0xdb, 0xbb, 0x92, 0x0f, 0xa5, 0x2a, 0xa8, 0xe1, 0xa5, 0xfc, 0x19, 0x07, 0x47, 0xff, 0x4c, 0x56, 0x6c, 0x4c, 0xaa, 0xf2, 0x4e, 0xc5, 0x75, 0x2e, 0x33, 0xaa, 0x59,
0xb5, 0xa6, 0x8f, 0x98, 0xb6, 0x35, 0xb1, 0x86, 0xa3, 0xad, 0x5c, 0x29, 0xea, 0xaa, 0x94, 0x1a, 0x2e, 0xde, 0xa2, 0x52, 0xf4, 0x06, 0xa3, 0x26, 0x87, 0xec, 0x41, 0x5f, 0xe0, 0x7d, 0x7c, 0xc7,
0x49, 0x02, 0x1f, 0x7c, 0x7e, 0xc9, 0x5f, 0xf1, 0x86, 0x17, 0xdc, 0x38, 0x0d, 0x7b, 0xe9, 0x21, 0x52, 0xe5, 0xc3, 0xb8, 0x1d, 0x7a, 0x51, 0x4f, 0xe0, 0xfd, 0x15, 0x4b, 0x15, 0xf9, 0x1b, 0xb6,
0x4c, 0x4e, 0x21, 0xd4, 0x98, 0x2b, 0x34, 0xd7, 0x58, 0x3b, 0x55, 0xc3, 0x74, 0x07, 0x90, 0x4f, 0x53, 0xe4, 0xa8, 0x31, 0xad, 0xdc, 0x03, 0xeb, 0x1e, 0xd4, 0x98, 0x09, 0x09, 0x14, 0xec, 0xae,
0xa1, 0x2f, 0x90, 0x32, 0x54, 0x8d, 0xac, 0xcd, 0x29, 0xfe, 0xbb, 0x03, 0xd1, 0xff, 0xb5, 0xe6, 0xc8, 0x8e, 0x50, 0x15, 0xb9, 0x50, 0x48, 0x42, 0xd8, 0xa9, 0x6e, 0x9f, 0xb1, 0x07, 0x3c, 0x67,
0x3c, 0x63, 0xee, 0xbe, 0x71, 0xda, 0xe1, 0xcc, 0x6a, 0xa2, 0xf9, 0x2b, 0xba, 0xaf, 0xf7, 0x52, 0x19, 0xd3, 0x56, 0x81, 0x4e, 0xb4, 0x09, 0x93, 0x03, 0x70, 0x15, 0x26, 0x12, 0xf5, 0x19, 0x96,
0x17, 0x93, 0x33, 0x80, 0xbc, 0x14, 0x02, 0x73, 0x5b, 0xd8, 0x7c, 0x7c, 0x0f, 0xb1, 0x9a, 0x39, 0x56, 0x13, 0x37, 0x7a, 0x04, 0xc8, 0xef, 0xd0, 0xe5, 0x48, 0x53, 0x94, 0xb5, 0x28, 0xf5, 0x29,
0x1b, 0x76, 0x76, 0xf5, 0xd2, 0xd0, 0x22, 0xde, 0xa9, 0x2f, 0xe1, 0x3d, 0x43, 0x81, 0xa6, 0x25, 0xf8, 0xd2, 0x02, 0xff, 0x47, 0x1f, 0xb3, 0x8a, 0xa7, 0xf6, 0x3d, 0x2f, 0x6a, 0xb1, 0xd4, 0x30,
0x78, 0xa7, 0x46, 0x1e, 0xf3, 0x94, 0x6f, 0x81, 0xf8, 0x23, 0xcb, 0x56, 0xf5, 0x96, 0xd8, 0x77, 0xaa, 0xd8, 0x03, 0xda, 0xdb, 0x3b, 0x91, 0xb5, 0xc9, 0x21, 0x40, 0x92, 0x73, 0x8e, 0x89, 0x49,
0xc4, 0x69, 0x93, 0xb9, 0xa8, 0x5b, 0xf6, 0x67, 0x10, 0x2a, 0xa4, 0x2c, 0x2b, 0xa5, 0xa8, 0x9d, 0xac, 0x2f, 0x5f, 0x43, 0x0c, 0xe3, 0x56, 0xc4, 0x47, 0xb1, 0x3b, 0x91, 0x6b, 0x90, 0x4a, 0xe7,
0x79, 0xc3, 0x74, 0x68, 0x81, 0x5b, 0x29, 0x6a, 0xf2, 0x0d, 0x1c, 0x29, 0xac, 0x04, 0xcf, 0x69, 0x15, 0x2f, 0x75, 0x40, 0xa5, 0x73, 0xcd, 0x4b, 0x15, 0xf2, 0x3f, 0x90, 0x86, 0xba, 0x79, 0xb9,
0x56, 0x09, 0x9a, 0x63, 0x81, 0xb2, 0xf5, 0x71, 0xda, 0x24, 0xee, 0x5a, 0x9c, 0x44, 0x30, 0x78, 0x0a, 0xec, 0xda, 0xc0, 0x51, 0xed, 0x39, 0x2e, 0x9b, 0xe8, 0x3f, 0xc0, 0x95, 0x48, 0xd3, 0x38,
0x46, 0xa5, 0xed, 0x6f, 0x85, 0x8e, 0xd2, 0x1e, 0xc9, 0x14, 0xba, 0xc6, 0x88, 0x08, 0x1c, 0x6a, 0x17, 0xbc, 0xb4, 0xd2, 0xf7, 0xa3, 0xbe, 0x01, 0x2e, 0x04, 0x2f, 0xc9, 0x7f, 0xb0, 0x2b, 0xb1,
0xc3, 0x78, 0x00, 0xef, 0x2e, 0x8b, 0xca, 0xd4, 0xf1, 0x5f, 0x01, 0x7c, 0x58, 0xae, 0x2b, 0x54, 0xe0, 0x2c, 0xa1, 0x71, 0xc1, 0x69, 0x82, 0x19, 0x8a, 0xa6, 0x0b, 0x46, 0xb5, 0xe3, 0xb2, 0xc1,
0x17, 0xa2, 0xcc, 0x9f, 0x2e, 0x37, 0x46, 0x51, 0x72, 0x0b, 0x13, 0x54, 0x54, 0xaf, 0x95, 0xed, 0x89, 0x0f, 0xbd, 0x3b, 0x94, 0xca, 0x7c, 0xcb, 0xb5, 0x21, 0xcd, 0x91, 0x8c, 0xa0, 0xad, 0x35,
0x9d, 0x71, 0xf9, 0xe8, 0x24, 0x1d, 0x9d, 0x27, 0x7b, 0xe3, 0x71, 0x50, 0x33, 0xbf, 0xf4, 0x05, 0xf7, 0xc1, 0xa2, 0xc6, 0x0c, 0x7a, 0xb0, 0x75, 0x92, 0x15, 0xba, 0x0c, 0x3e, 0x3b, 0xb0, 0x33,
0x0b, 0xc7, 0x4f, 0xc7, 0xb8, 0x7f, 0x3c, 0xf9, 0x15, 0xc6, 0xff, 0xca, 0x5b, 0x63, 0xec, 0xe8, 0x5b, 0x14, 0x28, 0x8f, 0x79, 0x9e, 0xdc, 0x9e, 0x2c, 0xb5, 0xa4, 0xe4, 0x02, 0x86, 0x28, 0xa9,
0x36, 0x56, 0xb9, 0xd8, 0x3a, 0x5e, 0x51, 0xc5, 0x4d, 0xdd, 0xac, 0x58, 0x73, 0xb2, 0x86, 0x34, 0x5a, 0x48, 0x53, 0x7b, 0xca, 0xc4, 0x8d, 0xa5, 0x74, 0x70, 0x14, 0xae, 0x35, 0xd7, 0x46, 0xce,
0x1b, 0xc4, 0x99, 0x8e, 0xba, 0xb3, 0xae, 0x1d, 0x62, 0x8f, 0x5c, 0x31, 0x1d, 0x7f, 0x0d, 0x1f, 0xe4, 0xa4, 0x4a, 0x98, 0xda, 0xf8, 0xc8, 0xc3, 0xf5, 0xe3, 0xfe, 0x7b, 0xf0, 0xbe, 0xf3, 0x1b,
0x2f, 0x04, 0x47, 0x69, 0x6e, 0xb8, 0x36, 0x28, 0x53, 0xfc, 0x6d, 0x8d, 0xda, 0xd8, 0x1b, 0x24, 0x61, 0x4c, 0xe3, 0xd7, 0x52, 0x59, 0xdb, 0x28, 0x5e, 0x50, 0xc9, 0x74, 0x59, 0x0f, 0x68, 0x7d,
0x2d, 0xb0, 0x59, 0x60, 0x17, 0xc7, 0xbf, 0xc3, 0xc4, 0x8f, 0xce, 0x4d, 0x99, 0xbb, 0xb9, 0xb1, 0x32, 0x82, 0xd4, 0xf3, 0x67, 0xfa, 0xb0, 0x6d, 0xfb, 0xd0, 0xad, 0x90, 0xd3, 0x54, 0x05, 0xff,
0xc2, 0xd8, 0xcd, 0xf5, 0x24, 0x1b, 0x1e, 0xac, 0x74, 0xe7, 0x70, 0xa5, 0x8f, 0x61, 0x28, 0xf1, 0xc2, 0xaf, 0x53, 0xce, 0x50, 0xe8, 0x73, 0xa6, 0x34, 0x8a, 0x08, 0x3f, 0x2c, 0x50, 0x69, 0xf3,
0x25, 0x7b, 0xde, 0xb5, 0x32, 0x90, 0xf8, 0x72, 0xcf, 0x99, 0xde, 0x4d, 0x06, 0xf3, 0xe9, 0x9e, 0x82, 0xa0, 0x19, 0xd6, 0xe3, 0x6f, 0xed, 0xe0, 0x23, 0x0c, 0xab, 0xd6, 0x39, 0xcf, 0x13, 0xdb,
0x4b, 0x37, 0x93, 0xc1, 0x2c, 0xe5, 0xfc, 0x8f, 0x00, 0x06, 0x4b, 0xff, 0xfc, 0x90, 0x2b, 0x18, 0x37, 0x86, 0x18, 0x33, 0xf7, 0x55, 0x90, 0x31, 0x37, 0x16, 0x42, 0x6b, 0x73, 0x21, 0xac, 0x4f,
0x2f, 0x51, 0xb2, 0xdd, 0x83, 0xf3, 0xc9, 0x9e, 0xba, 0x5b, 0xf4, 0xe4, 0xf4, 0x2d, 0xb4, 0xdd, 0x4c, 0xfb, 0xe7, 0x13, 0xd3, 0x79, 0x32, 0x31, 0x47, 0x9f, 0x1c, 0xe8, 0xcd, 0xaa, 0xe5, 0x45,
0xb6, 0xf8, 0xa3, 0x24, 0xf8, 0x2e, 0x20, 0x77, 0x30, 0xbe, 0x46, 0xac, 0x16, 0xa5, 0x94, 0x98, 0x4e, 0xc1, 0x9b, 0xa1, 0x48, 0x1f, 0xd7, 0xd5, 0x6f, 0x6b, 0xec, 0xae, 0xd0, 0xfd, 0x83, 0xe7,
0x1b, 0x64, 0xe4, 0x6c, 0xaf, 0xe8, 0x0d, 0x71, 0x4e, 0x8e, 0xff, 0xb3, 0xe7, 0xad, 0x22, 0xfe, 0xd0, 0x66, 0xda, 0x82, 0x5f, 0x42, 0xe7, 0x85, 0x43, 0x2e, 0xc1, 0x3b, 0x43, 0x2c, 0xa6, 0xb9,
0x8b, 0xab, 0xbe, 0x7b, 0x1c, 0xbf, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x83, 0xd9, 0x6b, 0x10, 0x98, 0x68, 0x4c, 0xc9, 0xe1, 0x5a, 0xd2, 0x33, 0xe4, 0xec, 0xef, 0x3d, 0xd9, 0x12, 0x0d,
0x2d, 0x05, 0x00, 0x00, 0x23, 0xd5, 0x8d, 0xf3, 0xae, 0x5d, 0xad, 0x2f, 0xbf, 0x05, 0x00, 0x00, 0xff, 0xff, 0x97, 0xbc,
0x58, 0x26, 0x6b, 0x05, 0x00, 0x00,
} }

View file

@ -23,6 +23,9 @@ message Heartbeat {
string rack = 7; string rack = 7;
uint32 admin_port = 8; uint32 admin_port = 8;
repeated VolumeInformationMessage volumes = 9; repeated VolumeInformationMessage volumes = 9;
// delta volume ids
repeated uint32 new_vids = 10;
repeated uint32 deleted_vids = 11;
} }
message HeartbeatResponse { message HeartbeatResponse {

View file

@ -72,17 +72,24 @@ func (ms *MasterServer) SendHeartbeat(stream master_pb.Seaweed_SendHeartbeatServ
} }
} }
newVolumes, deletedVolumes := t.SyncDataNodeRegistration(heartbeat.Volumes, dn)
message := &master_pb.VolumeLocation{ message := &master_pb.VolumeLocation{
Url: dn.Url(), Url: dn.Url(),
PublicUrl: dn.PublicUrl, PublicUrl: dn.PublicUrl,
} }
for _, v := range newVolumes { if len(heartbeat.NewVids) > 0 || len(heartbeat.DeletedVids) > 0 {
message.NewVids = append(message.NewVids, uint32(v.Id)) // process delta volume ids if exists for fast volume id updates
} message.NewVids = append(message.NewVids, heartbeat.NewVids...)
for _, v := range deletedVolumes { message.DeletedVids = append(message.DeletedVids, heartbeat.DeletedVids...)
message.DeletedVids = append(message.DeletedVids, uint32(v.Id)) } else {
// process heartbeat.Volumes
newVolumes, deletedVolumes := t.SyncDataNodeRegistration(heartbeat.Volumes, dn)
for _, v := range newVolumes {
message.NewVids = append(message.NewVids, uint32(v.Id))
}
for _, v := range deletedVolumes {
message.DeletedVids = append(message.DeletedVids, uint32(v.Id))
}
} }
if len(message.NewVids) > 0 || len(message.DeletedVids) > 0 { if len(message.NewVids) > 0 || len(message.DeletedVids) > 0 {
@ -169,6 +176,7 @@ func (ms *MasterServer) KeepConnected(stream master_pb.Seaweed_KeepConnectedServ
select { select {
case message := <-messageChan: case message := <-messageChan:
if err := stream.Send(message); err != nil { if err := stream.Send(message); err != nil {
glog.V(0).Infof("=> client %v: %+v", clientName, message)
return err return err
} }
case <-stopChan: case <-stopChan:

View file

@ -89,6 +89,22 @@ func (vs *VolumeServer) doHeartbeat(masterNode string, sleepInterval time.Durati
for { for {
select { select {
case vid := <-vs.store.NewVolumeIdChan:
deltaBeat := &master_pb.Heartbeat{
NewVids: []uint32{uint32(vid)},
}
if err = stream.Send(deltaBeat); err != nil {
glog.V(0).Infof("Volume Server Failed to update to master %s: %v", masterNode, err)
return "", err
}
case vid := <-vs.store.DeletedVolumeIdChan:
deltaBeat := &master_pb.Heartbeat{
DeletedVids: []uint32{uint32(vid)},
}
if err = stream.Send(deltaBeat); err != nil {
glog.V(0).Infof("Volume Server Failed to update to master %s: %v", masterNode, err)
return "", err
}
case <-tickChan: case <-tickChan:
if err = stream.Send(vs.store.CollectHeartbeat()); err != nil { if err = stream.Send(vs.store.CollectHeartbeat()); err != nil {
glog.V(0).Infof("Volume Server Failed to talk with master %s: %v", masterNode, err) glog.V(0).Infof("Volume Server Failed to talk with master %s: %v", masterNode, err)

View file

@ -18,16 +18,18 @@ const (
* A VolumeServer contains one Store * A VolumeServer contains one Store
*/ */
type Store struct { type Store struct {
Ip string Ip string
Port int Port int
PublicUrl string PublicUrl string
Locations []*DiskLocation Locations []*DiskLocation
dataCenter string //optional informaton, overwriting master setting if exists dataCenter string //optional informaton, overwriting master setting if exists
rack string //optional information, overwriting master setting if exists rack string //optional information, overwriting master setting if exists
connected bool connected bool
VolumeSizeLimit uint64 //read from the master VolumeSizeLimit uint64 //read from the master
Client master_pb.Seaweed_SendHeartbeatClient Client master_pb.Seaweed_SendHeartbeatClient
NeedleMapType NeedleMapType NeedleMapType NeedleMapType
NewVolumeIdChan chan VolumeId
DeletedVolumeIdChan chan VolumeId
} }
func (s *Store) String() (str string) { func (s *Store) String() (str string) {
@ -43,6 +45,8 @@ func NewStore(port int, ip, publicUrl string, dirnames []string, maxVolumeCounts
location.loadExistingVolumes(needleMapKind) location.loadExistingVolumes(needleMapKind)
s.Locations = append(s.Locations, location) s.Locations = append(s.Locations, location)
} }
s.NewVolumeIdChan = make(chan VolumeId, 3)
s.DeletedVolumeIdChan = make(chan VolumeId, 3)
return return
} }
func (s *Store) AddVolume(volumeListString string, collection string, needleMapKind NeedleMapType, replicaPlacement string, ttlString string, preallocate int64) error { func (s *Store) AddVolume(volumeListString string, collection string, needleMapKind NeedleMapType, replicaPlacement string, ttlString string, preallocate int64) error {
@ -87,6 +91,7 @@ func (s *Store) DeleteCollection(collection string) (e error) {
if e != nil { if e != nil {
return return
} }
// let the heartbeat send the list of volumes, instead of sending the deleted volume ids to DeletedVolumeIdChan
} }
return return
} }
@ -119,6 +124,7 @@ func (s *Store) addVolume(vid VolumeId, collection string, needleMapKind NeedleM
location.Directory, vid, collection, replicaPlacement, ttl) location.Directory, vid, collection, replicaPlacement, ttl)
if volume, err := NewVolume(location.Directory, collection, vid, needleMapKind, replicaPlacement, ttl, preallocate); err == nil { if volume, err := NewVolume(location.Directory, collection, vid, needleMapKind, replicaPlacement, ttl, preallocate); err == nil {
location.SetVolume(vid, volume) location.SetVolume(vid, volume)
s.NewVolumeIdChan <- vid
return nil return nil
} else { } else {
return err return err
@ -232,14 +238,6 @@ func (s *Store) Write(i VolumeId, n *Needle) (size uint32, err error) {
return return
} }
func (s *Store) updateMaster() {
if s.Client != nil {
if e := s.Client.Send(s.CollectHeartbeat()); e != nil {
glog.V(0).Infoln("error when reporting size:", e)
}
}
}
func (s *Store) Delete(i VolumeId, n *Needle) (uint32, error) { func (s *Store) Delete(i VolumeId, n *Needle) (uint32, error) {
if v := s.findVolume(i); v != nil && !v.readOnly { if v := s.findVolume(i); v != nil && !v.readOnly {
return v.deleteNeedle(n) return v.deleteNeedle(n)
@ -265,7 +263,7 @@ func (s *Store) HasVolume(i VolumeId) bool {
func (s *Store) MountVolume(i VolumeId) error { func (s *Store) MountVolume(i VolumeId) error {
for _, location := range s.Locations { for _, location := range s.Locations {
if found := location.LoadVolume(i, s.NeedleMapType); found == true { if found := location.LoadVolume(i, s.NeedleMapType); found == true {
s.updateMaster() s.NewVolumeIdChan <- VolumeId(i)
return nil return nil
} }
} }
@ -276,7 +274,7 @@ func (s *Store) MountVolume(i VolumeId) error {
func (s *Store) UnmountVolume(i VolumeId) error { func (s *Store) UnmountVolume(i VolumeId) error {
for _, location := range s.Locations { for _, location := range s.Locations {
if err := location.UnloadVolume(i); err == nil { if err := location.UnloadVolume(i); err == nil {
s.updateMaster() s.DeletedVolumeIdChan <- VolumeId(i)
return nil return nil
} }
} }
@ -287,7 +285,7 @@ func (s *Store) UnmountVolume(i VolumeId) error {
func (s *Store) DeleteVolume(i VolumeId) error { func (s *Store) DeleteVolume(i VolumeId) error {
for _, location := range s.Locations { for _, location := range s.Locations {
if error := location.deleteVolumeById(i); error == nil { if error := location.deleteVolumeById(i); error == nil {
s.updateMaster() s.DeletedVolumeIdChan <- VolumeId(i)
return nil return nil
} }
} }

View file

@ -67,7 +67,6 @@ func (mc *MasterClient) tryAllMasters() {
glog.V(0).Infof("failed to receive from %s: %v", master, err) glog.V(0).Infof("failed to receive from %s: %v", master, err)
return err return err
} else { } else {
glog.V(0).Infof("volume location: %+v", volumeLocation)
loc := Location{ loc := Location{
Url: volumeLocation.Url, Url: volumeLocation.Url,
PublicUrl: volumeLocation.PublicUrl, PublicUrl: volumeLocation.PublicUrl,