Documentation ¶
Overview ¶
Package integration implements an integration test framework. Via this package, one could start a cluster easily. It supports different operations for simulation purpose, and it also provides different ways to check cluster state.
Index ¶
- Constants
- func ParseExpectedLogShardCount(cluster pb.ClusterInfo) int
- func ParseExpectedTNShardCount(cluster pb.ClusterInfo) int
- func ParseLogShardExpectedSize(shardID uint64, cluster pb.ClusterInfo) int
- func ParseLogShardReportedSize(shardID uint64, state pb.LogState, hkcfg hakeeper.Config, currTick uint64) int
- func ParseReportedLogShardCount(state pb.LogState, hkcfg hakeeper.Config, currTick uint64) int
- func ParseReportedTNShardCount(state pb.TNState, hkcfg hakeeper.Config, currTick uint64) int
- func ParseTNShardReportedSize(shardID uint64, state pb.TNState, hkcfg hakeeper.Config, currTick uint64) int
- type CNService
- type Cluster
- type ClusterAwareness
- type ClusterOperation
- type ClusterState
- type ClusterWaitState
- type FilterFunc
- type LogService
- type NetworkPartition
- type Options
- func (opt Options) BuildHAKeeperConfig() hakeeper.Config
- func (opt Options) GetCNEngineType() tnservice.StorageType
- func (opt Options) GetTNStorageType() tnservice.StorageType
- func (opt Options) WithCNHeartbeatInterval(interval time.Duration) Options
- func (opt Options) WithCNServiceNum(num int) Options
- func (opt Options) WithCNShardNum(num uint64) Options
- func (opt Options) WithCNUseDistributedTAEEngine() Options
- func (opt Options) WithCNUseMemoryEngine() Options
- func (opt Options) WithHKCNStoreTimeout(timeout time.Duration) Options
- func (opt Options) WithHKCheckInterval(interval time.Duration) Options
- func (opt Options) WithHKLogStoreTimeout(timeout time.Duration) Options
- func (opt Options) WithHKTNStoreTimeout(timeout time.Duration) Options
- func (opt Options) WithHKTickPerSecond(tick int) Options
- func (opt Options) WithHostAddress(host string) Options
- func (opt Options) WithKeepData() Options
- func (opt Options) WithLogHeartbeatInterval(interval time.Duration) Options
- func (opt Options) WithLogLevel(lvl zapcore.Level) Options
- func (opt Options) WithLogReplicaNum(num uint64) Options
- func (opt Options) WithLogServiceNum(num int) Options
- func (opt Options) WithLogShardNum(num uint64) Options
- func (opt Options) WithLogger(logger *zap.Logger) Options
- func (opt Options) WithLogtailCollectInterval(interval time.Duration) Options
- func (opt Options) WithLogtailResponseSendTimeout(timeout time.Duration) Options
- func (opt Options) WithLogtailRpcMaxMessageSize(size int64) Options
- func (opt Options) WithRootDataDir(root string) Options
- func (opt Options) WithTNHeartbeatInterval(interval time.Duration) Options
- func (opt Options) WithTNServiceNum(num int) Options
- func (opt Options) WithTNShartnum(num uint64) Options
- func (opt Options) WithTNUseMEMStorage() Options
- func (opt Options) WithTNUseTAEStorage() Options
- type ServiceStatus
- type TNService
Constants ¶
const (
// The expected number of tn replicas.
TNShardExpectedSize = 1
)
Variables ¶
This section is empty.
Functions ¶
func ParseExpectedLogShardCount ¶
func ParseExpectedLogShardCount(cluster pb.ClusterInfo) int
ParseExpectedLogShardCount returns the expected count of log shards.
func ParseExpectedTNShardCount ¶ added in v1.0.0
func ParseExpectedTNShardCount(cluster pb.ClusterInfo) int
ParseExpectedTNShardCount returns the expected count of tn shards.
func ParseLogShardExpectedSize ¶
func ParseLogShardExpectedSize(shardID uint64, cluster pb.ClusterInfo) int
ParseLogShardExpectedSize returns the expected count of log replicas.
func ParseLogShardReportedSize ¶
func ParseLogShardReportedSize( shardID uint64, state pb.LogState, hkcfg hakeeper.Config, currTick uint64, ) int
ParseLogShardReportedSize returns the reported count of log replicas.
func ParseReportedLogShardCount ¶
ParseReportedLogShardCount returns the reported count of log shards.
func ParseReportedTNShardCount ¶ added in v1.0.0
ParseReportedTNShardCount returns the reported count of tn shards.
Types ¶
type CNService ¶
type CNService interface { // Start sends heartbeat and start to handle command. Start() error // Close stops store Close() error // Status returns the status of service. Status() ServiceStatus // ID returns uuid of store ID() string // SQLAddress returns the sql listen address SQLAddress() string //GetTaskRunner returns the taskRunner. GetTaskRunner() taskservice.TaskRunner // GetTaskService returns the taskservice GetTaskService() (taskservice.TaskService, bool) // WaitSystemInitCompleted wait system init task completed WaitSystemInitCompleted(ctx context.Context) error //SetCancel sets CancelFunc to stop GetClusterDetailsFromHAKeeper SetCancel(context.CancelFunc) }
CNService describes expected behavior for tn service.
type Cluster ¶
type Cluster interface { // Start starts svcs sequentially, after start, system init is completed. Start() error // Close stops svcs sequentially Close() error // Options returns the adjusted options Options() Options ClusterOperation ClusterAwareness ClusterState ClusterWaitState }
Cluster describes behavior of test framework.
type ClusterAwareness ¶
type ClusterAwareness interface { // ListTNServices lists uuid of all tn services. ListTNServices() []string // ListLogServices lists uuid of all log services. ListLogServices() []string // ListCnServices lists uuid of all cn services. ListCnServices() []string // ListHAKeeperServices lists all hakeeper log services. ListHAKeeperServices() []LogService // GetTNService fetches tn service instance by uuid. GetTNService(uuid string) (TNService, error) // GetLogService fetches log service instance by index. GetLogService(uuid string) (LogService, error) // GetTNServiceIndexed fetches tn service instance by uuid. GetTNServiceIndexed(index int) (TNService, error) // GetLogServiceIndexed fetches log service instance by index. GetLogServiceIndexed(index int) (LogService, error) // GetCNService fetches cn service instance by index. GetCNService(uuid string) (CNService, error) // GetCNServiceIndexed fetches cn service instance by index. GetCNServiceIndexed(index int) (CNService, error) // GetClusterState fetches current cluster state GetClusterState(ctx context.Context) (*logpb.CheckerState, error) }
ClusterAwareness provides cluster awareness information.
type ClusterOperation ¶
type ClusterOperation interface { // CloseTNService closes tn service by uuid. CloseTNService(uuid string) error // StartTNService starts tn service by uuid. StartTNService(uuid string) error // CloseTNServiceIndexed closes tn service by its index. CloseTNServiceIndexed(index int) error // StartTNServiceIndexed starts tn service by its index. StartTNServiceIndexed(index int) error // CloseLogService closes log service by uuid. CloseLogService(uuid string) error // StartLogService starts log service by uuid. StartLogService(uuid string) error // CloseLogServiceIndexed closes log service by its index. CloseLogServiceIndexed(index int) error // StartLogServiceIndexed starts log service by its index. StartLogServiceIndexed(index int) error // CloseCNService closes cn service by uuid. CloseCNService(uuid string) error // StartCNService starts cn service by uuid. StartCNService(uuid string) error // CloseCNServiceIndexed closes cn service by its index. CloseCNServiceIndexed(index int) error // StartCNServiceIndexed starts cn service by its index. StartCNServiceIndexed(index int) error // NewNetworkPartition constructs network partition from service index. NewNetworkPartition(tnIndexes, logIndexes, cnIndexes []uint32) NetworkPartition // RemainingNetworkPartition returns partition for the remaining services. RemainingNetworkPartition(partitions ...NetworkPartition) NetworkPartition // StartNetworkPartition enables network partition feature. StartNetworkPartition(partitions ...NetworkPartition) // CloseNetworkPartition disables network partition feature. CloseNetworkPartition() }
ClusterOperation supports kinds of cluster operations.
type ClusterState ¶
type ClusterState interface { // ListTNShards lists all tn shards within the cluster. ListTNShards(ctx context.Context) ([]metadata.TNShardRecord, error) // ListLogShards lists all log shards within the cluster. ListLogShards(ctx context.Context) ([]metadata.LogShardRecord, error) // GetTNStoreInfo gets tn store information by uuid. GetTNStoreInfo(ctx context.Context, uuid string) (logpb.TNStoreInfo, error) // GetTNStoreInfoIndexed gets tn store information by index. GetTNStoreInfoIndexed(ctx context.Context, index int) (logpb.TNStoreInfo, error) // GetLogStoreInfo gets log store information by uuid. GetLogStoreInfo(ctx context.Context, uuid string) (logpb.LogStoreInfo, error) // GetLogStoreInfoIndexed gets log store information by index. GetLogStoreInfoIndexed(ctx context.Context, index int) (logpb.LogStoreInfo, error) // GetCNStoreInfo gets cn store information by uuid. GetCNStoreInfo(ctx context.Context, uuid string) (logpb.CNStoreInfo, error) // GetCNStoreInfoIndexed gets cn store information by index. GetCNStoreInfoIndexed(ctx context.Context, index int) (logpb.CNStoreInfo, error) // GetHAKeeperState returns hakeeper state from running hakeeper. GetHAKeeperState() logpb.HAKeeperState // GetHAKeeperConfig returns hakeeper configuration. GetHAKeeperConfig() hakeeper.Config // TNStoreExpired checks tn store expired or not by uuid. TNStoreExpired(uuid string) (bool, error) // TNStoreExpiredIndexed checks tn store expired or not by index. TNStoreExpiredIndexed(index int) (bool, error) // LogStoreExpired checks log store expired or not by uuid. LogStoreExpired(uuid string) (bool, error) // LogStoreExpiredIndexed checks log store expired or not by index. LogStoreExpiredIndexed(index int) (bool, error) // CNStoreExpired checks cn store expired or not by uuid. CNStoreExpired(uuid string) (bool, error) // CNStoreExpiredIndexed checks cn store expired or not by index. CNStoreExpiredIndexed(index int) (bool, error) // IsClusterHealthy checks whether cluster is healthy or not. IsClusterHealthy() bool }
ClusterState provides cluster running state.
type ClusterWaitState ¶
type ClusterWaitState interface { // WaitHAKeeperLeader waits hakeeper leader elected and return it. WaitHAKeeperLeader(ctx context.Context) LogService // WaitHAKeeperState waits the specific hakeeper state. WaitHAKeeperState(ctx context.Context, expected logpb.HAKeeperState) // WaitTNShardsReported waits the expected count of tn shards reported. WaitTNShardsReported(ctx context.Context) // WaitLogShardsReported waits the expected count of log shards reported. WaitLogShardsReported(ctx context.Context) // WaitTNReplicaReported waits tn replica reported. WaitTNReplicaReported(ctx context.Context, shardID uint64) // WaitLogReplicaReported waits log replicas reported. WaitLogReplicaReported(ctx context.Context, shardID uint64) // WaitTNStoreTimeout waits tn store timeout by uuid. WaitTNStoreTimeout(ctx context.Context, uuid string) // WaitTNStoreTimeoutIndexed waits tn store timeout by index. WaitTNStoreTimeoutIndexed(ctx context.Context, index int) // WaitTNStoreReported waits tn store reported by uuid. WaitTNStoreReported(ctx context.Context, uuid string) // WaitTNStoreReportedIndexed waits tn store reported by index. WaitTNStoreReportedIndexed(ctx context.Context, index int) // WaitTNStoreTaskServiceCreated waits tn store task service started by uuid. WaitTNStoreTaskServiceCreated(ctx context.Context, uuid string) // WaitTNStoreTaskServiceCreatedIndexed waits tn store task service started by index. WaitTNStoreTaskServiceCreatedIndexed(ctx context.Context, index int) // WaitCNStoreReported waits cn store reported by uuid. WaitCNStoreReported(ctx context.Context, uuid string) // WaitCNStoreReportedIndexed waits cn store reported by index. WaitCNStoreReportedIndexed(ctx context.Context, index int) // WaitCNStoreTaskServiceCreated waits cn store task service started by uuid. WaitCNStoreTaskServiceCreated(ctx context.Context, uuid string) // WaitCNStoreTaskServiceCreatedIndexed waits cn store task service started by index. WaitCNStoreTaskServiceCreatedIndexed(ctx context.Context, index int) // WaitLogStoreTaskServiceCreated waits log store task service started by uuid WaitLogStoreTaskServiceCreated(ctx context.Context, uuid string) // WaitLogStoreTaskServiceCreatedIndexed waits log store task service started by index WaitLogStoreTaskServiceCreatedIndexed(ctx context.Context, index int) // WaitLogStoreTimeout waits log store timeout by uuid. WaitLogStoreTimeout(ctx context.Context, uuid string) // WaitLogStoreTimeoutIndexed waits log store timeout by index. WaitLogStoreTimeoutIndexed(ctx context.Context, index int) // WaitLogStoreReported waits log store reported by uuid. WaitLogStoreReported(ctx context.Context, uuid string) // WaitLogStoreReportedIndexed waits log store reported by index. WaitLogStoreReportedIndexed(ctx context.Context, index int) }
ClusterWaitState waits cluster state until timeout.
type FilterFunc ¶
FilterFunc returns true if traffic was allowed.
type LogService ¶
type LogService interface { // Start sends heartbeat and start to handle command. Start() error // Close stops store Close() error // Status returns the status of service Status() ServiceStatus // ID returns uuid of store ID() string // IsLeaderHakeeper checks hakeeper information. IsLeaderHakeeper() (bool, error) // GetClusterState returns cluster information from hakeeper leader. GetClusterState() (*logpb.CheckerState, error) // SetInitialClusterInfo sets cluster initialize state. SetInitialClusterInfo(numOfLogShards, numOfTNShards, numOfLogReplicas uint64) error // StartHAKeeperReplica starts hakeeper replicas. StartHAKeeperReplica(replicaID uint64, initialReplicas map[uint64]dragonboat.Target, join bool) error // GetTaskService returns the taskService GetTaskService() (taskservice.TaskService, bool) }
LogService describes expected behavior for log service.
type NetworkPartition ¶
type NetworkPartition struct {
// contains filtered or unexported fields
}
NetworkPartition records index of services from the same network partition.
func (NetworkPartition) ListCNServiceIndex ¶
func (p NetworkPartition) ListCNServiceIndex() []uint32
func (NetworkPartition) ListLogServiceIndex ¶
func (p NetworkPartition) ListLogServiceIndex() []uint32
ListLogServiceIndex lists index of all log services in the partition.
func (NetworkPartition) ListTNServiceIndex ¶ added in v1.0.0
func (p NetworkPartition) ListTNServiceIndex() []uint32
ListTNServiceIndex lists index of all tn services in the partition.
type Options ¶
type Options struct {
// contains filtered or unexported fields
}
Options are params for creating test cluster.
func DefaultOptions ¶
func DefaultOptions() Options
DefaultOptions sets a list of recommended options.
func (Options) BuildHAKeeperConfig ¶
BuildHAKeeperConfig returns hakeeper.Config
We could check timeout for dn/log store via hakeeper.Config.
func (Options) GetCNEngineType ¶
func (opt Options) GetCNEngineType() tnservice.StorageType
GetCNEngineType returns the engine type that the cnservice used
func (Options) GetTNStorageType ¶ added in v1.0.0
func (opt Options) GetTNStorageType() tnservice.StorageType
GetTNStorageType returns the storage type that the dnservice used
func (Options) WithCNHeartbeatInterval ¶
WithCNHeartbeatInterval sets heartbeat interval fo cn service.
func (Options) WithCNServiceNum ¶
func (Options) WithCNShardNum ¶
func (Options) WithCNUseDistributedTAEEngine ¶
WithCNUseDistributedTAEEngine use distributed tae engine as cn engine
func (Options) WithCNUseMemoryEngine ¶
WithCNUseMemoryEngine use memory engine as cn engine
func (Options) WithHKCNStoreTimeout ¶
func (Options) WithHKCheckInterval ¶
WithHKCheckInterval sets check interval for hakeeper.
func (Options) WithHKLogStoreTimeout ¶
WithHKLogStoreTimeout sets log store timeout for hakeeper.
func (Options) WithHKTNStoreTimeout ¶ added in v1.0.0
WithHKTNStoreTimeout sets tn store timeout for hakeeper.
func (Options) WithHKTickPerSecond ¶
WithHKTickPerSecond sets tick per second for hakeeper.
func (Options) WithHostAddress ¶
WithHostAddress sets host address for all services.
func (Options) WithKeepData ¶
WithKeepData sets keep data after cluster closed.
func (Options) WithLogHeartbeatInterval ¶
WithLogHeartbeatInterval sets heartbeat interval fo log service.
func (Options) WithLogLevel ¶
WithLogLevel sets log level.
func (Options) WithLogReplicaNum ¶
WithLogReplicaNum sets log replica number for the cluster.
func (Options) WithLogServiceNum ¶
WithLogServiceNum sets log service number in the cluster.
func (Options) WithLogShardNum ¶
WithLogShardNum sets log shard number in the cluster.
func (Options) WithLogger ¶
WithLogger sets logger.
func (Options) WithLogtailCollectInterval ¶ added in v0.7.0
WithLogtailCollectInterval sets collection interval for logtail push server.
func (Options) WithLogtailResponseSendTimeout ¶ added in v0.7.0
WithLogtailResponseSendTimeout sets response send timeout for logtail push server.
func (Options) WithLogtailRpcMaxMessageSize ¶ added in v0.7.0
WithLogtailRpcMaxMessageSize sets max rpc message size for logtail push server.
func (Options) WithRootDataDir ¶
WithRootDataDir sets root for service data directory.
func (Options) WithTNHeartbeatInterval ¶ added in v1.0.0
WithTNHeartbeatInterval sets heartbeat interval fo tn service.
func (Options) WithTNServiceNum ¶ added in v1.0.0
WithTNServiceNum sets tn service number in the cluster.
func (Options) WithTNShartnum ¶ added in v1.0.0
WithTNShartnum sets tn shard number in the cluster.
func (Options) WithTNUseMEMStorage ¶ added in v1.0.0
WithTNUseMEMStorage sets tn transaction use mem storage.
func (Options) WithTNUseTAEStorage ¶ added in v1.0.0
WithTNUseTAEStorage sets tn transaction use tae storage.
type ServiceStatus ¶
type ServiceStatus int
ServiceStatus indicates service status.
const ( ServiceInitialized ServiceStatus = iota ServiceStarted ServiceClosed )
type TNService ¶ added in v1.0.0
type TNService interface { // Start sends heartbeat and start to handle command. Start() error // Close stops store Close() error // Status returns the status of service. Status() ServiceStatus // ID returns uuid of store ID() string // StartTNReplica start the TNShard replica StartTNReplica(shard metadata.TNShard) error // CloseTNReplica close the TNShard replica. CloseTNReplica(shard metadata.TNShard) error // GetTaskService returns the taskservice GetTaskService() (taskservice.TaskService, bool) }
TNService describes expected behavior for tn service.