Documentation ¶
Index ¶
- func AssertStmtStaleness(sctx sessionctx.Context, expected bool)
- func CalculateAsOfTsExpr(ctx context.Context, sctx planctx.PlanContext, tsExpr ast.ExprNode) (uint64, error)
- func CalculateTsWithReadStaleness(sctx sessionctx.Context, readStaleness time.Duration) (uint64, error)
- func GetExternalTimestamp(ctx context.Context, sc *stmtctx.StatementContext) (uint64, error)
- func GetSessionSnapshotInfoSchema(sctx sessionctx.Context, snapshotTS uint64) (infoschema.InfoSchema, error)
- func IsStmtStaleness(sctx sessionctx.Context) bool
- type Processor
- type StalenessTSEvaluator
- type StalenessTxnContextProvider
- func (p *StalenessTxnContextProvider) ActivateTxn() (kv.Transaction, error)
- func (p *StalenessTxnContextProvider) AdviseOptimizeWithPlan(_ any) error
- func (p *StalenessTxnContextProvider) AdviseWarmup() error
- func (p *StalenessTxnContextProvider) GetReadReplicaScope() string
- func (p *StalenessTxnContextProvider) GetSnapshotWithStmtForUpdateTS() (kv.Snapshot, error)
- func (p *StalenessTxnContextProvider) GetSnapshotWithStmtReadTS() (kv.Snapshot, error)
- func (p *StalenessTxnContextProvider) GetStmtForUpdateTS() (uint64, error)
- func (p *StalenessTxnContextProvider) GetStmtReadTS() (uint64, error)
- func (p *StalenessTxnContextProvider) GetTxnInfoSchema() infoschema.InfoSchema
- func (p *StalenessTxnContextProvider) GetTxnScope() string
- func (p *StalenessTxnContextProvider) OnInitialize(ctx context.Context, tp sessiontxn.EnterNewTxnType) error
- func (p *StalenessTxnContextProvider) OnLocalTemporaryTableCreated()
- func (p *StalenessTxnContextProvider) OnPessimisticStmtEnd(_ context.Context, _ bool) error
- func (p *StalenessTxnContextProvider) OnPessimisticStmtStart(_ context.Context) error
- func (p *StalenessTxnContextProvider) OnStmtCommit(_ context.Context) error
- func (p *StalenessTxnContextProvider) OnStmtErrorForNextAction(ctx context.Context, point sessiontxn.StmtErrorHandlePoint, err error) (sessiontxn.StmtErrorAction, error)
- func (p *StalenessTxnContextProvider) OnStmtRetry(ctx context.Context) error
- func (p *StalenessTxnContextProvider) OnStmtRollback(_ context.Context, _ bool) error
- func (p *StalenessTxnContextProvider) OnStmtStart(ctx context.Context, _ ast.StmtNode) error
- func (p *StalenessTxnContextProvider) SetOptionsBeforeCommit(txn kv.Transaction, commitTSChecker func(uint64) bool) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AssertStmtStaleness ¶
func AssertStmtStaleness(sctx sessionctx.Context, expected bool)
AssertStmtStaleness is used only for test
func CalculateAsOfTsExpr ¶
func CalculateAsOfTsExpr(ctx context.Context, sctx planctx.PlanContext, tsExpr ast.ExprNode) (uint64, error)
CalculateAsOfTsExpr calculates the TsExpr of AsOfClause to get a StartTS.
func CalculateTsWithReadStaleness ¶
func CalculateTsWithReadStaleness(sctx sessionctx.Context, readStaleness time.Duration) (uint64, error)
CalculateTsWithReadStaleness calculates the TsExpr for readStaleness duration
func GetExternalTimestamp ¶
GetExternalTimestamp returns the external timestamp in cache, or get and store it in cache
func GetSessionSnapshotInfoSchema ¶
func GetSessionSnapshotInfoSchema(sctx sessionctx.Context, snapshotTS uint64) (infoschema.InfoSchema, error)
GetSessionSnapshotInfoSchema returns the session's information schema with specified ts
func IsStmtStaleness ¶
func IsStmtStaleness(sctx sessionctx.Context) bool
IsStmtStaleness indicates whether the current statement is staleness or not
Types ¶
type Processor ¶
type Processor interface { // IsStaleness indicates that whether we should use the staleness IsStaleness() bool // GetStalenessInfoSchema returns the information schema if it is stale read, otherwise returns nil GetStalenessInfoSchema() infoschema.InfoSchema // GetStalenessReadTS returns the ts if it is stale read, otherwise returns 0 GetStalenessReadTS() uint64 // GetStalenessTSEvaluatorForPrepare returns a function that will be used by prepare to evaluate ts GetStalenessTSEvaluatorForPrepare() StalenessTSEvaluator // OnSelectTable will be called when process table in select statement OnSelectTable(tn *ast.TableName) error // OnExecutePreparedStmt when process execute OnExecutePreparedStmt(preparedTSEvaluator StalenessTSEvaluator) error }
Processor is an interface used to process stale read
func NewStaleReadProcessor ¶
func NewStaleReadProcessor(ctx context.Context, sctx sessionctx.Context) Processor
NewStaleReadProcessor creates a new stale read processor
type StalenessTSEvaluator ¶
type StalenessTSEvaluator func(sctx sessionctx.Context) (uint64, error)
StalenessTSEvaluator is a function to get staleness ts
type StalenessTxnContextProvider ¶
type StalenessTxnContextProvider struct {
// contains filtered or unexported fields
}
StalenessTxnContextProvider implements sessiontxn.TxnContextProvider
func NewStalenessTxnContextProvider ¶
func NewStalenessTxnContextProvider(sctx sessionctx.Context, ts uint64, is infoschema.InfoSchema) *StalenessTxnContextProvider
NewStalenessTxnContextProvider creates a new StalenessTxnContextProvider
func (*StalenessTxnContextProvider) ActivateTxn ¶
func (p *StalenessTxnContextProvider) ActivateTxn() (kv.Transaction, error)
ActivateTxn activates the transaction.
func (*StalenessTxnContextProvider) AdviseOptimizeWithPlan ¶
func (p *StalenessTxnContextProvider) AdviseOptimizeWithPlan(_ any) error
AdviseOptimizeWithPlan providers optimization according to the plan
func (*StalenessTxnContextProvider) AdviseWarmup ¶
func (p *StalenessTxnContextProvider) AdviseWarmup() error
AdviseWarmup provides warmup for inner state
func (*StalenessTxnContextProvider) GetReadReplicaScope ¶
func (p *StalenessTxnContextProvider) GetReadReplicaScope() string
GetReadReplicaScope returns the read replica scope
func (*StalenessTxnContextProvider) GetSnapshotWithStmtForUpdateTS ¶
func (p *StalenessTxnContextProvider) GetSnapshotWithStmtForUpdateTS() (kv.Snapshot, error)
GetSnapshotWithStmtForUpdateTS gets snapshot with for update ts
func (*StalenessTxnContextProvider) GetSnapshotWithStmtReadTS ¶
func (p *StalenessTxnContextProvider) GetSnapshotWithStmtReadTS() (kv.Snapshot, error)
GetSnapshotWithStmtReadTS gets snapshot with read ts and set the transaction related options before return
func (*StalenessTxnContextProvider) GetStmtForUpdateTS ¶
func (p *StalenessTxnContextProvider) GetStmtForUpdateTS() (uint64, error)
GetStmtForUpdateTS will return an error because stale read does not support it
func (*StalenessTxnContextProvider) GetStmtReadTS ¶
func (p *StalenessTxnContextProvider) GetStmtReadTS() (uint64, error)
GetStmtReadTS returns the read timestamp
func (*StalenessTxnContextProvider) GetTxnInfoSchema ¶
func (p *StalenessTxnContextProvider) GetTxnInfoSchema() infoschema.InfoSchema
GetTxnInfoSchema returns the information schema used by txn
func (*StalenessTxnContextProvider) GetTxnScope ¶
func (p *StalenessTxnContextProvider) GetTxnScope() string
GetTxnScope returns the current txn scope
func (*StalenessTxnContextProvider) OnInitialize ¶
func (p *StalenessTxnContextProvider) OnInitialize(ctx context.Context, tp sessiontxn.EnterNewTxnType) error
OnInitialize is the hook that should be called when enter a new txn with this provider
func (*StalenessTxnContextProvider) OnLocalTemporaryTableCreated ¶
func (p *StalenessTxnContextProvider) OnLocalTemporaryTableCreated()
OnLocalTemporaryTableCreated will not be called for StalenessTxnContextProvider
func (*StalenessTxnContextProvider) OnPessimisticStmtEnd ¶
func (p *StalenessTxnContextProvider) OnPessimisticStmtEnd(_ context.Context, _ bool) error
OnPessimisticStmtEnd is the hook that should be called when finishes handling a pessimistic DML or select-for-update statement.
func (*StalenessTxnContextProvider) OnPessimisticStmtStart ¶
func (p *StalenessTxnContextProvider) OnPessimisticStmtStart(_ context.Context) error
OnPessimisticStmtStart is the hook that should be called when starts handling a pessimistic DML or a pessimistic select-for-update statements.
func (*StalenessTxnContextProvider) OnStmtCommit ¶
func (p *StalenessTxnContextProvider) OnStmtCommit(_ context.Context) error
OnStmtCommit is the hook that should be called when a statement is executed successfully.
func (*StalenessTxnContextProvider) OnStmtErrorForNextAction ¶
func (p *StalenessTxnContextProvider) OnStmtErrorForNextAction(ctx context.Context, point sessiontxn.StmtErrorHandlePoint, err error) (sessiontxn.StmtErrorAction, error)
OnStmtErrorForNextAction is the hook that should be called when a new statement get an error
func (*StalenessTxnContextProvider) OnStmtRetry ¶
func (p *StalenessTxnContextProvider) OnStmtRetry(ctx context.Context) error
OnStmtRetry is the hook that should be called when a statement retry
func (*StalenessTxnContextProvider) OnStmtRollback ¶
func (p *StalenessTxnContextProvider) OnStmtRollback(_ context.Context, _ bool) error
OnStmtRollback is the hook that should be called when a statement fails to execute.
func (*StalenessTxnContextProvider) OnStmtStart ¶
OnStmtStart is the hook that should be called when a new statement starte
func (*StalenessTxnContextProvider) SetOptionsBeforeCommit ¶
func (p *StalenessTxnContextProvider) SetOptionsBeforeCommit(txn kv.Transaction, commitTSChecker func(uint64) bool) error
SetOptionsBeforeCommit sets the options before commit, because stale read txn is read only, no need to set options.