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