Documentation ¶
Index ¶
- Variables
- func RegisterDeadlockServer(s *grpc.Server, srv DeadlockServer)
- type DeadlockClient
- type DeadlockRequest
- func (*DeadlockRequest) Descriptor() ([]byte, []int)
- func (m *DeadlockRequest) GetEntry() WaitForEntry
- func (m *DeadlockRequest) GetTp() DeadlockRequestType
- func (m *DeadlockRequest) Marshal() (dAtA []byte, err error)
- func (m *DeadlockRequest) MarshalTo(dAtA []byte) (int, error)
- func (m *DeadlockRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*DeadlockRequest) ProtoMessage()
- func (m *DeadlockRequest) Reset()
- func (m *DeadlockRequest) Size() (n int)
- func (m *DeadlockRequest) String() string
- func (m *DeadlockRequest) Unmarshal(dAtA []byte) error
- func (m *DeadlockRequest) XXX_DiscardUnknown()
- func (m *DeadlockRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *DeadlockRequest) XXX_Merge(src proto.Message)
- func (m *DeadlockRequest) XXX_Size() int
- func (m *DeadlockRequest) XXX_Unmarshal(b []byte) error
- type DeadlockRequestType
- type DeadlockResponse
- func (*DeadlockResponse) Descriptor() ([]byte, []int)
- func (m *DeadlockResponse) GetDeadlockKeyHash() uint64
- func (m *DeadlockResponse) GetEntry() WaitForEntry
- func (m *DeadlockResponse) GetWaitChain() []*WaitForEntry
- func (m *DeadlockResponse) Marshal() (dAtA []byte, err error)
- func (m *DeadlockResponse) MarshalTo(dAtA []byte) (int, error)
- func (m *DeadlockResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*DeadlockResponse) ProtoMessage()
- func (m *DeadlockResponse) Reset()
- func (m *DeadlockResponse) Size() (n int)
- func (m *DeadlockResponse) String() string
- func (m *DeadlockResponse) Unmarshal(dAtA []byte) error
- func (m *DeadlockResponse) XXX_DiscardUnknown()
- func (m *DeadlockResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *DeadlockResponse) XXX_Merge(src proto.Message)
- func (m *DeadlockResponse) XXX_Size() int
- func (m *DeadlockResponse) XXX_Unmarshal(b []byte) error
- type DeadlockServer
- type Deadlock_DetectClient
- type Deadlock_DetectServer
- type UnimplementedDeadlockServer
- type WaitForEntriesRequest
- func (*WaitForEntriesRequest) Descriptor() ([]byte, []int)
- func (m *WaitForEntriesRequest) Marshal() (dAtA []byte, err error)
- func (m *WaitForEntriesRequest) MarshalTo(dAtA []byte) (int, error)
- func (m *WaitForEntriesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*WaitForEntriesRequest) ProtoMessage()
- func (m *WaitForEntriesRequest) Reset()
- func (m *WaitForEntriesRequest) Size() (n int)
- func (m *WaitForEntriesRequest) String() string
- func (m *WaitForEntriesRequest) Unmarshal(dAtA []byte) error
- func (m *WaitForEntriesRequest) XXX_DiscardUnknown()
- func (m *WaitForEntriesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *WaitForEntriesRequest) XXX_Merge(src proto.Message)
- func (m *WaitForEntriesRequest) XXX_Size() int
- func (m *WaitForEntriesRequest) XXX_Unmarshal(b []byte) error
- type WaitForEntriesResponse
- func (*WaitForEntriesResponse) Descriptor() ([]byte, []int)
- func (m *WaitForEntriesResponse) GetEntries() []WaitForEntry
- func (m *WaitForEntriesResponse) Marshal() (dAtA []byte, err error)
- func (m *WaitForEntriesResponse) MarshalTo(dAtA []byte) (int, error)
- func (m *WaitForEntriesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*WaitForEntriesResponse) ProtoMessage()
- func (m *WaitForEntriesResponse) Reset()
- func (m *WaitForEntriesResponse) Size() (n int)
- func (m *WaitForEntriesResponse) String() string
- func (m *WaitForEntriesResponse) Unmarshal(dAtA []byte) error
- func (m *WaitForEntriesResponse) XXX_DiscardUnknown()
- func (m *WaitForEntriesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *WaitForEntriesResponse) XXX_Merge(src proto.Message)
- func (m *WaitForEntriesResponse) XXX_Size() int
- func (m *WaitForEntriesResponse) XXX_Unmarshal(b []byte) error
- type WaitForEntry
- func (*WaitForEntry) Descriptor() ([]byte, []int)
- func (m *WaitForEntry) GetKey() []byte
- func (m *WaitForEntry) GetKeyHash() uint64
- func (m *WaitForEntry) GetResourceGroupTag() []byte
- func (m *WaitForEntry) GetTxn() uint64
- func (m *WaitForEntry) GetWaitForTxn() uint64
- func (m *WaitForEntry) GetWaitTime() uint64
- func (m *WaitForEntry) Marshal() (dAtA []byte, err error)
- func (m *WaitForEntry) MarshalTo(dAtA []byte) (int, error)
- func (m *WaitForEntry) MarshalToSizedBuffer(dAtA []byte) (int, error)
- func (*WaitForEntry) ProtoMessage()
- func (m *WaitForEntry) Reset()
- func (m *WaitForEntry) Size() (n int)
- func (m *WaitForEntry) String() string
- func (m *WaitForEntry) Unmarshal(dAtA []byte) error
- func (m *WaitForEntry) XXX_DiscardUnknown()
- func (m *WaitForEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *WaitForEntry) XXX_Merge(src proto.Message)
- func (m *WaitForEntry) XXX_Size() int
- func (m *WaitForEntry) XXX_Unmarshal(b []byte) error
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrInvalidLengthDeadlock = fmt.Errorf("proto: negative length found during unmarshaling") ErrIntOverflowDeadlock = fmt.Errorf("proto: integer overflow") ErrUnexpectedEndOfGroupDeadlock = fmt.Errorf("proto: unexpected end of group") )
View Source
var DeadlockRequestType_name = map[int32]string{
0: "Detect",
1: "CleanUpWaitFor",
2: "CleanUp",
}
View Source
var DeadlockRequestType_value = map[string]int32{
"Detect": 0,
"CleanUpWaitFor": 1,
"CleanUp": 2,
}
Functions ¶
func RegisterDeadlockServer ¶
func RegisterDeadlockServer(s *grpc.Server, srv DeadlockServer)
Types ¶
type DeadlockClient ¶
type DeadlockClient interface { // Get local wait for entries, should be handle by every node. // The owner should sent this request to all members to build the complete wait for graph. GetWaitForEntries(ctx context.Context, in *WaitForEntriesRequest, opts ...grpc.CallOption) (*WaitForEntriesResponse, error) // Detect should only sent to the owner. only be handled by the owner. // The DeadlockResponse is sent back only if there is deadlock detected. // CleanUpWaitFor and CleanUp doesn't return responses. Detect(ctx context.Context, opts ...grpc.CallOption) (Deadlock_DetectClient, error) }
DeadlockClient is the client API for Deadlock service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewDeadlockClient ¶
func NewDeadlockClient(cc *grpc.ClientConn) DeadlockClient
type DeadlockRequest ¶
type DeadlockRequest struct { Tp DeadlockRequestType `protobuf:"varint,1,opt,name=tp,proto3,enum=deadlock.DeadlockRequestType" json:"tp,omitempty"` Entry WaitForEntry `protobuf:"bytes,2,opt,name=entry,proto3" json:"entry"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*DeadlockRequest) Descriptor ¶
func (*DeadlockRequest) Descriptor() ([]byte, []int)
func (*DeadlockRequest) GetEntry ¶
func (m *DeadlockRequest) GetEntry() WaitForEntry
func (*DeadlockRequest) GetTp ¶
func (m *DeadlockRequest) GetTp() DeadlockRequestType
func (*DeadlockRequest) Marshal ¶
func (m *DeadlockRequest) Marshal() (dAtA []byte, err error)
func (*DeadlockRequest) MarshalToSizedBuffer ¶
func (m *DeadlockRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*DeadlockRequest) ProtoMessage ¶
func (*DeadlockRequest) ProtoMessage()
func (*DeadlockRequest) Reset ¶
func (m *DeadlockRequest) Reset()
func (*DeadlockRequest) Size ¶
func (m *DeadlockRequest) Size() (n int)
func (*DeadlockRequest) String ¶
func (m *DeadlockRequest) String() string
func (*DeadlockRequest) Unmarshal ¶
func (m *DeadlockRequest) Unmarshal(dAtA []byte) error
func (*DeadlockRequest) XXX_DiscardUnknown ¶
func (m *DeadlockRequest) XXX_DiscardUnknown()
func (*DeadlockRequest) XXX_Marshal ¶
func (m *DeadlockRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*DeadlockRequest) XXX_Merge ¶
func (m *DeadlockRequest) XXX_Merge(src proto.Message)
func (*DeadlockRequest) XXX_Size ¶
func (m *DeadlockRequest) XXX_Size() int
func (*DeadlockRequest) XXX_Unmarshal ¶
func (m *DeadlockRequest) XXX_Unmarshal(b []byte) error
type DeadlockRequestType ¶
type DeadlockRequestType int32
const ( DeadlockRequestType_Detect DeadlockRequestType = 0 // CleanUpWaitFor cleans a single entry the transaction is waiting. DeadlockRequestType_CleanUpWaitFor DeadlockRequestType = 1 // CleanUp cleans all entries the transaction is waiting. DeadlockRequestType_CleanUp DeadlockRequestType = 2 )
func (DeadlockRequestType) EnumDescriptor ¶
func (DeadlockRequestType) EnumDescriptor() ([]byte, []int)
func (DeadlockRequestType) String ¶
func (x DeadlockRequestType) String() string
type DeadlockResponse ¶
type DeadlockResponse struct { // The same entry sent by DeadlockRequest, identifies the sender. Entry WaitForEntry `protobuf:"bytes,1,opt,name=entry,proto3" json:"entry"` // The key hash of the lock that is hold by the waiting transaction. DeadlockKeyHash uint64 `protobuf:"varint,2,opt,name=deadlock_key_hash,json=deadlockKeyHash,proto3" json:"deadlock_key_hash,omitempty"` // The other entries of the dead lock circle. The current entry is in `entry` field and not // included in this field. WaitChain []*WaitForEntry `protobuf:"bytes,3,rep,name=wait_chain,json=waitChain,proto3" json:"wait_chain,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*DeadlockResponse) Descriptor ¶
func (*DeadlockResponse) Descriptor() ([]byte, []int)
func (*DeadlockResponse) GetDeadlockKeyHash ¶
func (m *DeadlockResponse) GetDeadlockKeyHash() uint64
func (*DeadlockResponse) GetEntry ¶
func (m *DeadlockResponse) GetEntry() WaitForEntry
func (*DeadlockResponse) GetWaitChain ¶
func (m *DeadlockResponse) GetWaitChain() []*WaitForEntry
func (*DeadlockResponse) Marshal ¶
func (m *DeadlockResponse) Marshal() (dAtA []byte, err error)
func (*DeadlockResponse) MarshalToSizedBuffer ¶
func (m *DeadlockResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*DeadlockResponse) ProtoMessage ¶
func (*DeadlockResponse) ProtoMessage()
func (*DeadlockResponse) Reset ¶
func (m *DeadlockResponse) Reset()
func (*DeadlockResponse) Size ¶
func (m *DeadlockResponse) Size() (n int)
func (*DeadlockResponse) String ¶
func (m *DeadlockResponse) String() string
func (*DeadlockResponse) Unmarshal ¶
func (m *DeadlockResponse) Unmarshal(dAtA []byte) error
func (*DeadlockResponse) XXX_DiscardUnknown ¶
func (m *DeadlockResponse) XXX_DiscardUnknown()
func (*DeadlockResponse) XXX_Marshal ¶
func (m *DeadlockResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*DeadlockResponse) XXX_Merge ¶
func (m *DeadlockResponse) XXX_Merge(src proto.Message)
func (*DeadlockResponse) XXX_Size ¶
func (m *DeadlockResponse) XXX_Size() int
func (*DeadlockResponse) XXX_Unmarshal ¶
func (m *DeadlockResponse) XXX_Unmarshal(b []byte) error
type DeadlockServer ¶
type DeadlockServer interface { // Get local wait for entries, should be handle by every node. // The owner should sent this request to all members to build the complete wait for graph. GetWaitForEntries(context.Context, *WaitForEntriesRequest) (*WaitForEntriesResponse, error) // Detect should only sent to the owner. only be handled by the owner. // The DeadlockResponse is sent back only if there is deadlock detected. // CleanUpWaitFor and CleanUp doesn't return responses. Detect(Deadlock_DetectServer) error }
DeadlockServer is the server API for Deadlock service.
type Deadlock_DetectClient ¶
type Deadlock_DetectClient interface { Send(*DeadlockRequest) error Recv() (*DeadlockResponse, error) grpc.ClientStream }
type Deadlock_DetectServer ¶
type Deadlock_DetectServer interface { Send(*DeadlockResponse) error Recv() (*DeadlockRequest, error) grpc.ServerStream }
type UnimplementedDeadlockServer ¶
type UnimplementedDeadlockServer struct { }
UnimplementedDeadlockServer can be embedded to have forward compatible implementations.
func (*UnimplementedDeadlockServer) Detect ¶
func (*UnimplementedDeadlockServer) Detect(srv Deadlock_DetectServer) error
func (*UnimplementedDeadlockServer) GetWaitForEntries ¶
func (*UnimplementedDeadlockServer) GetWaitForEntries(ctx context.Context, req *WaitForEntriesRequest) (*WaitForEntriesResponse, error)
type WaitForEntriesRequest ¶
type WaitForEntriesRequest struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*WaitForEntriesRequest) Descriptor ¶
func (*WaitForEntriesRequest) Descriptor() ([]byte, []int)
func (*WaitForEntriesRequest) Marshal ¶
func (m *WaitForEntriesRequest) Marshal() (dAtA []byte, err error)
func (*WaitForEntriesRequest) MarshalTo ¶
func (m *WaitForEntriesRequest) MarshalTo(dAtA []byte) (int, error)
func (*WaitForEntriesRequest) MarshalToSizedBuffer ¶
func (m *WaitForEntriesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*WaitForEntriesRequest) ProtoMessage ¶
func (*WaitForEntriesRequest) ProtoMessage()
func (*WaitForEntriesRequest) Reset ¶
func (m *WaitForEntriesRequest) Reset()
func (*WaitForEntriesRequest) Size ¶
func (m *WaitForEntriesRequest) Size() (n int)
func (*WaitForEntriesRequest) String ¶
func (m *WaitForEntriesRequest) String() string
func (*WaitForEntriesRequest) Unmarshal ¶
func (m *WaitForEntriesRequest) Unmarshal(dAtA []byte) error
func (*WaitForEntriesRequest) XXX_DiscardUnknown ¶
func (m *WaitForEntriesRequest) XXX_DiscardUnknown()
func (*WaitForEntriesRequest) XXX_Marshal ¶
func (m *WaitForEntriesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*WaitForEntriesRequest) XXX_Merge ¶
func (m *WaitForEntriesRequest) XXX_Merge(src proto.Message)
func (*WaitForEntriesRequest) XXX_Size ¶
func (m *WaitForEntriesRequest) XXX_Size() int
func (*WaitForEntriesRequest) XXX_Unmarshal ¶
func (m *WaitForEntriesRequest) XXX_Unmarshal(b []byte) error
type WaitForEntriesResponse ¶
type WaitForEntriesResponse struct { Entries []WaitForEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*WaitForEntriesResponse) Descriptor ¶
func (*WaitForEntriesResponse) Descriptor() ([]byte, []int)
func (*WaitForEntriesResponse) GetEntries ¶
func (m *WaitForEntriesResponse) GetEntries() []WaitForEntry
func (*WaitForEntriesResponse) Marshal ¶
func (m *WaitForEntriesResponse) Marshal() (dAtA []byte, err error)
func (*WaitForEntriesResponse) MarshalTo ¶
func (m *WaitForEntriesResponse) MarshalTo(dAtA []byte) (int, error)
func (*WaitForEntriesResponse) MarshalToSizedBuffer ¶
func (m *WaitForEntriesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*WaitForEntriesResponse) ProtoMessage ¶
func (*WaitForEntriesResponse) ProtoMessage()
func (*WaitForEntriesResponse) Reset ¶
func (m *WaitForEntriesResponse) Reset()
func (*WaitForEntriesResponse) Size ¶
func (m *WaitForEntriesResponse) Size() (n int)
func (*WaitForEntriesResponse) String ¶
func (m *WaitForEntriesResponse) String() string
func (*WaitForEntriesResponse) Unmarshal ¶
func (m *WaitForEntriesResponse) Unmarshal(dAtA []byte) error
func (*WaitForEntriesResponse) XXX_DiscardUnknown ¶
func (m *WaitForEntriesResponse) XXX_DiscardUnknown()
func (*WaitForEntriesResponse) XXX_Marshal ¶
func (m *WaitForEntriesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*WaitForEntriesResponse) XXX_Merge ¶
func (m *WaitForEntriesResponse) XXX_Merge(src proto.Message)
func (*WaitForEntriesResponse) XXX_Size ¶
func (m *WaitForEntriesResponse) XXX_Size() int
func (*WaitForEntriesResponse) XXX_Unmarshal ¶
func (m *WaitForEntriesResponse) XXX_Unmarshal(b []byte) error
type WaitForEntry ¶
type WaitForEntry struct { // The transaction id that is waiting. Txn uint64 `protobuf:"varint,1,opt,name=txn,proto3" json:"txn,omitempty"` // The transaction id that is being waited for. WaitForTxn uint64 `protobuf:"varint,2,opt,name=wait_for_txn,json=waitForTxn,proto3" json:"wait_for_txn,omitempty"` // The hash value of the key is being waited for. KeyHash uint64 `protobuf:"varint,3,opt,name=key_hash,json=keyHash,proto3" json:"key_hash,omitempty"` // The key the current txn is trying to lock. Key []byte `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"` // The tag came from the lock request's context. ResourceGroupTag []byte `protobuf:"bytes,5,opt,name=resource_group_tag,json=resourceGroupTag,proto3" json:"resource_group_tag,omitempty"` // Milliseconds it has been waits. WaitTime uint64 `protobuf:"varint,6,opt,name=wait_time,json=waitTime,proto3" json:"wait_time,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*WaitForEntry) Descriptor ¶
func (*WaitForEntry) Descriptor() ([]byte, []int)
func (*WaitForEntry) GetKey ¶
func (m *WaitForEntry) GetKey() []byte
func (*WaitForEntry) GetKeyHash ¶
func (m *WaitForEntry) GetKeyHash() uint64
func (*WaitForEntry) GetResourceGroupTag ¶
func (m *WaitForEntry) GetResourceGroupTag() []byte
func (*WaitForEntry) GetTxn ¶
func (m *WaitForEntry) GetTxn() uint64
func (*WaitForEntry) GetWaitForTxn ¶
func (m *WaitForEntry) GetWaitForTxn() uint64
func (*WaitForEntry) GetWaitTime ¶
func (m *WaitForEntry) GetWaitTime() uint64
func (*WaitForEntry) Marshal ¶
func (m *WaitForEntry) Marshal() (dAtA []byte, err error)
func (*WaitForEntry) MarshalToSizedBuffer ¶
func (m *WaitForEntry) MarshalToSizedBuffer(dAtA []byte) (int, error)
func (*WaitForEntry) ProtoMessage ¶
func (*WaitForEntry) ProtoMessage()
func (*WaitForEntry) Reset ¶
func (m *WaitForEntry) Reset()
func (*WaitForEntry) Size ¶
func (m *WaitForEntry) Size() (n int)
func (*WaitForEntry) String ¶
func (m *WaitForEntry) String() string
func (*WaitForEntry) Unmarshal ¶
func (m *WaitForEntry) Unmarshal(dAtA []byte) error
func (*WaitForEntry) XXX_DiscardUnknown ¶
func (m *WaitForEntry) XXX_DiscardUnknown()
func (*WaitForEntry) XXX_Marshal ¶
func (m *WaitForEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*WaitForEntry) XXX_Merge ¶
func (m *WaitForEntry) XXX_Merge(src proto.Message)
func (*WaitForEntry) XXX_Size ¶
func (m *WaitForEntry) XXX_Size() int
func (*WaitForEntry) XXX_Unmarshal ¶
func (m *WaitForEntry) XXX_Unmarshal(b []byte) error
Click to show internal directories.
Click to hide internal directories.