Documentation ¶
Overview ¶
Package tikv provides tcp connection to kvserver.
Index ¶
- Constants
- func NewBackoff(retry, base, cap, jitter int) func() error
- func NewMockTikvStore() kv.Storage
- type Client
- type ClientFactory
- type CopClient
- type Driver
- type Region
- func (r *Region) Contains(key []byte) bool
- func (r *Region) EndKey() []byte
- func (r *Region) GetAddress() string
- func (r *Region) GetContext() *kvrpcpb.Context
- func (r *Region) GetID() uint64
- func (r *Region) NextPeer() (*metapb.Peer, error)
- func (r *Region) StartKey() []byte
- func (r *Region) VerID() RegionVerID
- type RegionCache
- type RegionVerID
- type Scanner
Constants ¶
const ( // NoJitter makes the backoff sequence strict exponential. NoJitter = 1 + iota // FullJitter applies random factors to strict exponential. FullJitter // EqualJitter is also randomized, but prevents very short sleeps. EqualJitter // DecorrJitter increases the maximum jitter based on the last random value. DecorrJitter )
Variables ¶
This section is empty.
Functions ¶
func NewBackoff ¶
NewBackoff creates a backoff func which implements exponential backoff with optional jitters. See: http://www.awsarchitectureblog.com/2015/03/backoff.html
func NewMockTikvStore ¶
NewMockTikvStore creates a mocked tikv store.
Types ¶
type Client ¶
type Client interface { // Close should release all data. Close() error // SendKVReq sends kv request. SendKVReq(req *kvrpcpb.Request) (*kvrpcpb.Response, error) // SendCopReq sends coprocessor request. SendCopReq(req *coprocessor.Request) (*coprocessor.Response, error) }
Client is a client that sends RPC. It should not be used after calling Close().
func NewRPCClient ¶
NewRPCClient new client that sends protobuf to do RPC.
type ClientFactory ¶
ClientFactory is a function that creates a Client with server address.
type CopClient ¶
type CopClient struct {
// contains filtered or unexported fields
}
CopClient is coprocessor client.
func (*CopClient) SupportRequestType ¶
SupportRequestType checks whether reqType is supported.
type Region ¶
type Region struct {
// contains filtered or unexported fields
}
Region stores region info. Region is a readonly class.
func (*Region) Contains ¶
Contains checks whether the key is in the region, for the maximum region endKey is empty. startKey <= key < endKey.
func (*Region) GetContext ¶
GetContext constructs kvprotopb.Context from region info.
type RegionCache ¶
type RegionCache struct {
// contains filtered or unexported fields
}
RegionCache store region cache by region id.
func NewRegionCache ¶
func NewRegionCache(pdClient pd.Client) *RegionCache
NewRegionCache new region cache.
func (*RegionCache) DropRegion ¶
func (c *RegionCache) DropRegion(id RegionVerID)
DropRegion remove some region cache.
func (*RegionCache) GetRegion ¶
func (c *RegionCache) GetRegion(key []byte) (*Region, error)
GetRegion find in cache, or get new region.
func (*RegionCache) GetRegionByVerID ¶
func (c *RegionCache) GetRegionByVerID(id RegionVerID) *Region
GetRegionByVerID finds a Region by Region's verID.
func (*RegionCache) NextPeer ¶
func (c *RegionCache) NextPeer(id RegionVerID)
NextPeer picks next peer as new leader, if out of range of peers delete region.
func (*RegionCache) UpdateLeader ¶
func (c *RegionCache) UpdateLeader(regionID RegionVerID, leaderID uint64)
UpdateLeader update some region cache with newer leader info.
type RegionVerID ¶
type RegionVerID struct {
// contains filtered or unexported fields
}
RegionVerID is a unique ID that can identify a Region at a specific version.