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) SetChunkSize(chunkSize int64)
- 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 ThrottleCommandedByUser int64 MaxLoad map[string]int64 PostponeCutOverFlagFile string SwapTablesTimeoutSeconds int64 ServeSocketFile string ServeTCPPort 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) SetChunkSize ¶ added in v0.8.4
func (this *MigrationContext) SetChunkSize(chunkSize int64)
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