etcd

package
v0.0.0-...-485a10e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 26, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EtcdPut    = "Put"
	EtcdGet    = "Get"
	EtcdTxn    = "Txn"
	EtcdDel    = "Del"
	EtcdGrant  = "Grant"
	EtcdRevoke = "Revoke"
)

etcd operation names

Variables

This section is empty.

Functions

func SetupEmbedEtcd

func SetupEmbedEtcd(dir string) (clientURL *url.URL, e *embed.Etcd, err error)

SetupEmbedEtcd starts an embed etcd server

Types

type CDCKey

type CDCKey struct {
	Tp           CDCKeyType
	ChangefeedID string
	CaptureID    string
	OwnerLeaseID string
}

CDCKey represents a etcd key which is defined by TiCDC

 Usage:
 we can parse a raw etcd key:
 ```
 	k := new(CDCKey)
 	rawKey := "/tidb/cdc/changefeed/info/test/changefeed"
	err := k.Parse(rawKey)
 	c.Assert(k, check.DeepEquals, &CDCKey{
			Tp:           CDCKeyTypeChangefeedInfo,
			ChangefeedID: "test/changefeed",
	})
 ```

 and we can generate a raw key from CDCKey
 ```
 	k := &CDCKey{
			Tp:           CDCKeyTypeChangefeedInfo,
			ChangefeedID: "test/changefeed",
	}
 	c.Assert(k.String(), check.Equals, "/tidb/cdc/changefeed/info/test/changefeed")
 ```

func (*CDCKey) Parse

func (k *CDCKey) Parse(key string) error

Parse parses the given etcd key

func (*CDCKey) String

func (k *CDCKey) String() string

type CDCKeyType

type CDCKeyType = int

CDCKeyType is the type of etcd key

const (
	CDCKeyTypeUnknown CDCKeyType = iota
	CDCKeyTypeOwner
	CDCKeyTypeCapture
	CDCKeyTypeChangefeedInfo
	CDCKeyTypeChangeFeedStatus
	CDCKeyTypeTaskPosition
	CDCKeyTypeTaskStatus
	CDCKeyTypeTaskWorkload
)

the types of etcd key

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a simple wrapper that adds retry to etcd RPC

func Wrap

func Wrap(cli *clientv3.Client, metrics map[string]prometheus.Counter) *Client

Wrap warps a clientv3.Client that provides etcd APIs required by TiCDC.

func (*Client) Delete

func (c *Client) Delete(ctx context.Context, key string, opts ...clientv3.OpOption) (resp *clientv3.DeleteResponse, err error)

Delete delegates request to clientv3.KV.Delete

func (*Client) Get

func (c *Client) Get(ctx context.Context, key string, opts ...clientv3.OpOption) (resp *clientv3.GetResponse, err error)

Get delegates request to clientv3.KV.Get

func (*Client) Grant

func (c *Client) Grant(ctx context.Context, ttl int64) (resp *clientv3.LeaseGrantResponse, err error)

Grant delegates request to clientv3.Lease.Grant

func (*Client) Put

func (c *Client) Put(ctx context.Context, key, val string, opts ...clientv3.OpOption) (resp *clientv3.PutResponse, err error)

Put delegates request to clientv3.KV.Put

func (*Client) RequestProgress

func (c *Client) RequestProgress(ctx context.Context) error

RequestProgress requests a progress notify response be sent in all watch channels.

func (*Client) Revoke

func (c *Client) Revoke(ctx context.Context, id clientv3.LeaseID) (resp *clientv3.LeaseRevokeResponse, err error)

Revoke delegates request to clientv3.Lease.Revoke

func (*Client) TimeToLive

func (c *Client) TimeToLive(ctx context.Context, lease clientv3.LeaseID, opts ...clientv3.LeaseOption) (resp *clientv3.LeaseTimeToLiveResponse, err error)

TimeToLive delegates request to clientv3.Lease.TimeToLive

func (*Client) Txn

func (c *Client) Txn(ctx context.Context) clientv3.Txn

Txn delegates request to clientv3.KV.Txn

func (*Client) Unwrap

func (c *Client) Unwrap() *clientv3.Client

Unwrap returns a clientv3.Client

func (*Client) Watch

func (c *Client) Watch(ctx context.Context, key string, opts ...clientv3.OpOption) clientv3.WatchChan

Watch delegates request to clientv3.Watcher.Watch

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL