Documentation
¶
Index ¶
- Constants
- func FileExists(fileName string) bool
- func PrettifyDurationOutput(d time.Duration) string
- type ContextConfig
- type CutOver
- type MigrationContext
- func (this *MigrationContext) ApplyCredentials()
- func (this *MigrationContext) ElapsedRowCopyTime() time.Duration
- func (this *MigrationContext) ElapsedTime() time.Duration
- func (this *MigrationContext) GetChangelogTableName() string
- func (this *MigrationContext) GetGhostTableName() string
- func (this *MigrationContext) GetIteration() int64
- func (this *MigrationContext) GetOldTableName() string
- func (this *MigrationContext) GetTotalRowsCopied() int64
- func (this *MigrationContext) GetVoluntaryLockName() string
- func (this *MigrationContext) HasMigrationRange() bool
- func (this *MigrationContext) InspectorIsAlsoApplier() bool
- func (this *MigrationContext) IsThrottled() (bool, string)
- func (this *MigrationContext) IsTransactionalTable() bool
- func (this *MigrationContext) MarkPointOfInterest() int64
- func (this *MigrationContext) MaxRetries() int
- func (this *MigrationContext) ReadConfigFile() error
- func (this *MigrationContext) ReadMaxLoad(maxLoadList string) error
- func (this *MigrationContext) RequiresBinlogFormatChange() bool
- func (this *MigrationContext) SetThrottled(throttle bool, reason string)
- func (this *MigrationContext) TimeSincePointOfInterest() time.Duration
- type RowsEstimateMethod
Constants ¶
const ( TableStatusRowsEstimate RowsEstimateMethod = "TableStatusRowsEstimate" ExplainRowsEstimate = "ExplainRowsEstimate" CountRowsEstimate = "CountRowsEstimate" )
Variables ¶
This section is empty.
Functions ¶
func FileExists ¶ added in v0.7.2
func PrettifyDurationOutput ¶
Types ¶
type ContextConfig ¶ added in v0.7.16
type CutOver ¶ added in v0.8.3
type CutOver int
const ( CutOverTwoStep CutOver = 1 CutOverVoluntaryLock CutOverUdfWait )
type MigrationContext ¶
type MigrationContext struct { DatabaseName string OriginalTableName string AlterStatement string CountTableRows bool AllowedRunningOnMaster bool SwitchToRowBinlogFormat bool NullableUniqueKeyAllowed bool ConfigFile string CliUser string CliPassword string ChunkSize int64 MaxLagMillisecondsThrottleThreshold int64 ReplictionLagQuery string ThrottleControlReplicaKeys *mysql.InstanceKeyMap ThrottleFlagFile string ThrottleAdditionalFlagFile string MaxLoad map[string]int64 PostponeSwapTablesFlagFile string SwapTablesTimeoutSeconds int64 Noop bool TestOnReplica bool OkToDropTable bool InitiallyDropOldTable bool InitiallyDropGhostTable bool CutOverType CutOver TableEngine string RowsEstimate int64 UsedRowsEstimateMethod RowsEstimateMethod OriginalBinlogFormat string OriginalBinlogRowImage string InspectorConnectionConfig *mysql.ConnectionConfig ApplierConnectionConfig *mysql.ConnectionConfig StartTime time.Time RowCopyStartTime time.Time LockTablesStartTime time.Time RenameTablesStartTime time.Time RenameTablesEndTime time.Time CurrentLag int64 TotalRowsCopied int64 TotalDMLEventsApplied int64 OriginalTableColumns *sql.ColumnList OriginalTableUniqueKeys [](*sql.UniqueKey) GhostTableColumns *sql.ColumnList GhostTableUniqueKeys [](*sql.UniqueKey) UniqueKey *sql.UniqueKey MigrationRangeMinValues *sql.ColumnValues MigrationRangeMaxValues *sql.ColumnValues Iteration int64 MigrationIterationRangeMinValues *sql.ColumnValues MigrationIterationRangeMaxValues *sql.ColumnValues CanStopStreaming func() bool // contains filtered or unexported fields }
MigrationContext has the general, global state of migration. It is used by all components throughout the migration process.
func (*MigrationContext) ApplyCredentials ¶ added in v0.7.16
func (this *MigrationContext) ApplyCredentials()
ApplyCredentials sorts out the credentials between the config file and the CLI flags
func (*MigrationContext) ElapsedRowCopyTime ¶
func (this *MigrationContext) ElapsedRowCopyTime() time.Duration
ElapsedRowCopyTime returns time since starting to copy chunks of rows
func (*MigrationContext) ElapsedTime ¶
func (this *MigrationContext) ElapsedTime() time.Duration
ElapsedTime returns time since very beginning of the process
func (*MigrationContext) GetChangelogTableName ¶
func (this *MigrationContext) GetChangelogTableName() string
GetChangelogTableName generates the name of changelog table, based on original table name
func (*MigrationContext) GetGhostTableName ¶
func (this *MigrationContext) GetGhostTableName() string
GetGhostTableName generates the name of ghost table, based on original table name
func (*MigrationContext) GetIteration ¶
func (this *MigrationContext) GetIteration() int64
func (*MigrationContext) GetOldTableName ¶
func (this *MigrationContext) GetOldTableName() string
GetOldTableName generates the name of the "old" table, into which the original table is renamed.
func (*MigrationContext) GetTotalRowsCopied ¶
func (this *MigrationContext) GetTotalRowsCopied() int64
GetTotalRowsCopied returns the accurate number of rows being copied (affected) This is not exactly the same as the rows being iterated via chunks, but potentially close enough
func (*MigrationContext) GetVoluntaryLockName ¶
func (this *MigrationContext) GetVoluntaryLockName() string
GetVoluntaryLockName returns a name of a voluntary lock to be used throughout the swap-tables process.
func (*MigrationContext) HasMigrationRange ¶
func (this *MigrationContext) HasMigrationRange() bool
HasMigrationRange tells us whether there's a range to iterate for copying rows. It will be `false` if the table is initially empty
func (*MigrationContext) InspectorIsAlsoApplier ¶
func (this *MigrationContext) InspectorIsAlsoApplier() bool
InspectorIsAlsoApplier is `true` when the both inspector and applier are the same database instance. This would be true when running directly on master or when testing on replica.
func (*MigrationContext) IsThrottled ¶
func (this *MigrationContext) IsThrottled() (bool, string)
func (*MigrationContext) IsTransactionalTable ¶
func (this *MigrationContext) IsTransactionalTable() bool
func (*MigrationContext) MarkPointOfInterest ¶ added in v0.8.2
func (this *MigrationContext) MarkPointOfInterest() int64
func (*MigrationContext) MaxRetries ¶
func (this *MigrationContext) MaxRetries() int
func (*MigrationContext) ReadConfigFile ¶
func (this *MigrationContext) ReadConfigFile() error
ReadConfigFile attempts to read the config file, if it exists
func (*MigrationContext) ReadMaxLoad ¶
func (this *MigrationContext) ReadMaxLoad(maxLoadList string) error
ReadMaxLoad parses the `--max-load` flag, which is in multiple key-value format, such as: 'Threads_running=100,Threads_connected=500'
func (*MigrationContext) RequiresBinlogFormatChange ¶
func (this *MigrationContext) RequiresBinlogFormatChange() bool
RequiresBinlogFormatChange is `true` when the original binlog format isn't `ROW`
func (*MigrationContext) SetThrottled ¶
func (this *MigrationContext) SetThrottled(throttle bool, reason string)
func (*MigrationContext) TimeSincePointOfInterest ¶ added in v0.8.2
func (this *MigrationContext) TimeSincePointOfInterest() time.Duration
type RowsEstimateMethod ¶
type RowsEstimateMethod string
RowsEstimateMethod is the type of row number estimation