test_raftstore

package
v0.0.0-...-1338f1b Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2024 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OperatorTypeAddPeer        = 1
	OperatorTypeRemovePeer     = 2
	OperatorTypeTransferLeader = 3
)

Variables

This section is empty.

Functions

func FindPeer

func FindPeer(region *metapb.Region, storeID uint64) *metapb.Peer

func GetDiffPeers

func GetDiffPeers(left *metapb.Region, right *metapb.Region) []*metapb.Peer

func MustGetCf

func MustGetCf(engine *engine_util.Engines, cf string, key []byte, value []byte)

func MustGetCfEqual

func MustGetCfEqual(engine *engine_util.Engines, cf string, key []byte, value []byte)

func MustGetCfNone

func MustGetCfNone(engine *engine_util.Engines, cf string, key []byte)

func MustGetEqual

func MustGetEqual(engine *engine_util.Engines, key []byte, value []byte)

func MustGetNone

func MustGetNone(engine *engine_util.Engines, key []byte)

func MustSamePeers

func MustSamePeers(left *metapb.Region, right *metapb.Region)

Utilities

func NewAdminRequest

func NewAdminRequest(regionID uint64, epoch *metapb.RegionEpoch, request *raft_cmdpb.AdminRequest) *raft_cmdpb.RaftCmdRequest

func NewBaseRequest

func NewBaseRequest(regionID uint64, epoch *metapb.RegionEpoch) raft_cmdpb.RaftCmdRequest

func NewDeleteCfCmd

func NewDeleteCfCmd(cf string, key []byte) *raft_cmdpb.Request

func NewGetCfCmd

func NewGetCfCmd(cf string, key []byte) *raft_cmdpb.Request

func NewPeer

func NewPeer(storeID, peerID uint64) *metapb.Peer

func NewPutCfCmd

func NewPutCfCmd(cf string, key, value []byte) *raft_cmdpb.Request

func NewRequest

func NewRequest(regionID uint64, epoch *metapb.RegionEpoch, requests []*raft_cmdpb.Request) raft_cmdpb.RaftCmdRequest

func NewSnapCmd

func NewSnapCmd() *raft_cmdpb.Request

func NewTransferLeaderCmd

func NewTransferLeaderCmd(peer *metapb.Peer) *raft_cmdpb.AdminRequest

func SleepMS

func SleepMS(ms int64)

Types

type Cluster

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

func NewCluster

func NewCluster(count int, schedulerClient *MockSchedulerClient, simulator Simulator, cfg *config.Config) *Cluster

func NewTestCluster

func NewTestCluster(count int, cfg *config.Config) *Cluster

func (*Cluster) AddFilter

func (c *Cluster) AddFilter(filter Filter)

func (*Cluster) AllocPeer

func (c *Cluster) AllocPeer(storeID uint64) *metapb.Peer

func (*Cluster) CallCommand

func (c *Cluster) CallCommand(request *raft_cmdpb.RaftCmdRequest, timeout time.Duration) (*raft_cmdpb.RaftCmdResponse, *badger.Txn)

func (*Cluster) CallCommandOnLeader

func (c *Cluster) CallCommandOnLeader(request *raft_cmdpb.RaftCmdRequest, timeout time.Duration) (*raft_cmdpb.RaftCmdResponse, *badger.Txn)

func (*Cluster) ClearFilters

func (c *Cluster) ClearFilters()

func (*Cluster) Get

func (c *Cluster) Get(key []byte) []byte

func (*Cluster) GetCF

func (c *Cluster) GetCF(cf string, key []byte) []byte

func (*Cluster) GetRandomRegion

func (c *Cluster) GetRandomRegion() *metapb.Region

func (*Cluster) GetRegion

func (c *Cluster) GetRegion(key []byte) *metapb.Region

func (*Cluster) GetStoreIdsOfRegion

func (c *Cluster) GetStoreIdsOfRegion(regionID uint64) []uint64

func (*Cluster) LeaderOfRegion

func (c *Cluster) LeaderOfRegion(regionID uint64) *metapb.Peer

func (*Cluster) MustAddPeer

func (c *Cluster) MustAddPeer(regionID uint64, peer *metapb.Peer)

func (*Cluster) MustDelete

func (c *Cluster) MustDelete(key []byte)

func (*Cluster) MustDeleteCF

func (c *Cluster) MustDeleteCF(cf string, key []byte)

func (*Cluster) MustGet

func (c *Cluster) MustGet(key []byte, value []byte)

func (*Cluster) MustHavePeer

func (c *Cluster) MustHavePeer(regionID uint64, peer *metapb.Peer)

func (*Cluster) MustNonePeer

func (c *Cluster) MustNonePeer(regionID uint64, peer *metapb.Peer)

func (*Cluster) MustPut

func (c *Cluster) MustPut(key, value []byte)

func (*Cluster) MustPutCF

func (c *Cluster) MustPutCF(cf string, key, value []byte)

func (*Cluster) MustRemovePeer

func (c *Cluster) MustRemovePeer(regionID uint64, peer *metapb.Peer)

func (*Cluster) MustTransferLeader

func (c *Cluster) MustTransferLeader(regionID uint64, leader *metapb.Peer)

func (*Cluster) Request

func (c *Cluster) Request(key []byte, reqs []*raft_cmdpb.Request, timeout time.Duration) (*raft_cmdpb.RaftCmdResponse, *badger.Txn)

func (*Cluster) Scan

func (c *Cluster) Scan(start, end []byte) [][]byte

func (*Cluster) Shutdown

func (c *Cluster) Shutdown()

func (*Cluster) Start

func (c *Cluster) Start()

func (*Cluster) StartServer

func (c *Cluster) StartServer(storeID uint64)

func (*Cluster) StopServer

func (c *Cluster) StopServer(storeID uint64)

func (*Cluster) TransferLeader

func (c *Cluster) TransferLeader(regionID uint64, leader *metapb.Peer)

type DropFilter

type DropFilter struct{}

func (*DropFilter) After

func (f *DropFilter) After()

func (*DropFilter) Before

func (f *DropFilter) Before(msg *rspb.RaftMessage) bool

type Filter

type Filter interface {
	Before(msgs *rspb.RaftMessage) bool
	After()
}

type MockSchedulerClient

type MockSchedulerClient struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewMockSchedulerClient

func NewMockSchedulerClient(clusterID uint64, baseID uint64) *MockSchedulerClient

func (*MockSchedulerClient) AddPeer

func (m *MockSchedulerClient) AddPeer(regionID uint64, peer *metapb.Peer)

Extra API for tests

func (*MockSchedulerClient) AllocID

func (m *MockSchedulerClient) AllocID(ctx context.Context) (uint64, error)

func (*MockSchedulerClient) AskSplit

func (*MockSchedulerClient) Bootstrap

func (*MockSchedulerClient) Close

func (m *MockSchedulerClient) Close()

func (*MockSchedulerClient) GetClusterID

func (m *MockSchedulerClient) GetClusterID(ctx context.Context) uint64

Implement SchedulerClient interface

func (*MockSchedulerClient) GetRegion

func (m *MockSchedulerClient) GetRegion(ctx context.Context, key []byte) (*metapb.Region, *metapb.Peer, error)

func (*MockSchedulerClient) GetRegionByID

func (m *MockSchedulerClient) GetRegionByID(ctx context.Context, regionID uint64) (*metapb.Region, *metapb.Peer, error)

func (*MockSchedulerClient) GetStore

func (m *MockSchedulerClient) GetStore(ctx context.Context, storeID uint64) (*metapb.Store, error)

func (*MockSchedulerClient) IsBootstrapped

func (m *MockSchedulerClient) IsBootstrapped(ctx context.Context) (bool, error)

func (*MockSchedulerClient) PutStore

func (m *MockSchedulerClient) PutStore(ctx context.Context, store *metapb.Store) error

func (*MockSchedulerClient) RegionHeartbeat

func (*MockSchedulerClient) RemovePeer

func (m *MockSchedulerClient) RemovePeer(regionID uint64, peer *metapb.Peer)

func (*MockSchedulerClient) SetRegionHeartbeatResponseHandler

func (m *MockSchedulerClient) SetRegionHeartbeatResponseHandler(storeID uint64, h func(*schedulerpb.RegionHeartbeatResponse))

func (*MockSchedulerClient) StoreHeartbeat

func (m *MockSchedulerClient) StoreHeartbeat(ctx context.Context, stats *schedulerpb.StoreStats) error

func (*MockSchedulerClient) TransferLeader

func (m *MockSchedulerClient) TransferLeader(regionID uint64, peer *metapb.Peer)

type MockTransport

type MockTransport struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewMockTransport

func NewMockTransport() *MockTransport

func (*MockTransport) AddFilter

func (t *MockTransport) AddFilter(filter Filter)

func (*MockTransport) AddStore

func (t *MockTransport) AddStore(storeID uint64, raftRouter message.RaftRouter, snapMgr *snap.SnapManager)

func (*MockTransport) ClearFilters

func (t *MockTransport) ClearFilters()

func (*MockTransport) RemoveStore

func (t *MockTransport) RemoveStore(storeID uint64)

func (*MockTransport) Send

type NodeSimulator

type NodeSimulator struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewNodeSimulator

func NewNodeSimulator(schedulerClient scheduler_client.Client) *NodeSimulator

func (*NodeSimulator) AddFilter

func (c *NodeSimulator) AddFilter(filter Filter)

func (*NodeSimulator) CallCommandOnStore

func (c *NodeSimulator) CallCommandOnStore(storeID uint64, request *raft_cmdpb.RaftCmdRequest, timeout time.Duration) (*raft_cmdpb.RaftCmdResponse, *badger.Txn)

func (*NodeSimulator) ClearFilters

func (c *NodeSimulator) ClearFilters()

func (*NodeSimulator) GetStoreIds

func (c *NodeSimulator) GetStoreIds() []uint64

func (*NodeSimulator) RunStore

func (c *NodeSimulator) RunStore(cfg *config.Config, engine *engine_util.Engines, ctx context.Context) error

func (*NodeSimulator) StopStore

func (c *NodeSimulator) StopStore(storeID uint64)

type OpAddPeer

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

type OpRemovePeer

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

type OpTransferLeader

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

type Operator

type Operator struct {
	Type OperatorType
	Data interface{}
}

type OperatorType

type OperatorType int64

type PartitionFilter

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

func (*PartitionFilter) After

func (f *PartitionFilter) After()

func (*PartitionFilter) Before

func (f *PartitionFilter) Before(msg *rspb.RaftMessage) bool

type Simulator

type Simulator interface {
	RunStore(raftConf *config.Config, engine *engine_util.Engines, ctx context.Context) error
	StopStore(storeID uint64)
	AddFilter(filter Filter)
	ClearFilters()
	GetStoreIds() []uint64
	CallCommandOnStore(storeID uint64, request *raft_cmdpb.RaftCmdRequest, timeout time.Duration) (*raft_cmdpb.RaftCmdResponse, *badger.Txn)
}

type Store

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

func NewStore

func NewStore(store *metapb.Store) *Store

Jump to

Keyboard shortcuts

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