Documentation ¶
Index ¶
- Constants
- Variables
- func TxnDurationHistogram(state TxnRunningState, hasLock bool) prometheus.Observer
- func TxnStatusEnteringCounter(state TxnRunningState) prometheus.Counter
- type TrxHistoryRecorder
- func (recorder *TrxHistoryRecorder) Clean()
- func (recorder *TrxHistoryRecorder) DumpTrxSummary() [][]types.Datum
- func (recorder *TrxHistoryRecorder) OnTrxEnd(info *TxnInfo)
- func (recorder *TrxHistoryRecorder) ResizeSummaries(capacity uint)
- func (recorder *TrxHistoryRecorder) SetMinDuration(d time.Duration)
- type TxnInfo
- type TxnRunningState
Constants ¶
const ( // IDStr is the column name of the TIDB_TRX table's ID column. IDStr = "ID" // StartTimeStr is the column name of the TIDB_TRX table's StartTime column. StartTimeStr = "START_TIME" // CurrentSQLDigestStr is the column name of the TIDB_TRX table's CurrentSQLDigest column. CurrentSQLDigestStr = "CURRENT_SQL_DIGEST" // CurrentSQLDigestTextStr is the column name of the TIDB_TRX table's CurrentSQLDigestText column. CurrentSQLDigestTextStr = "CURRENT_SQL_DIGEST_TEXT" // StateStr is the column name of the TIDB_TRX table's State column. StateStr = "STATE" // WaitingStartTimeStr is the column name of the TIDB_TRX table's WaitingStartTime column. WaitingStartTimeStr = "WAITING_START_TIME" // MemBufferKeysStr is the column name of the TIDB_TRX table's MemBufferKeys column. MemBufferKeysStr = "MEM_BUFFER_KEYS" // MemBufferBytesStr is the column name of the TIDB_TRX table's MemBufferBytes column. MemBufferBytesStr = "MEM_BUFFER_BYTES" // SessionIDStr is the column name of the TIDB_TRX table's SessionID column. SessionIDStr = "SESSION_ID" // UserStr is the column name of the TIDB_TRX table's User column. UserStr = "USER" // DBStr is the column name of the TIDB_TRX table's DB column. DBStr = "DB" // AllSQLDigestsStr is the column name of the TIDB_TRX table's AllSQLDigests column. AllSQLDigestsStr = "ALL_SQL_DIGESTS" // RelatedTableIDsStr is the table id of the TIDB_TRX table's RelatedTableIDs column. RelatedTableIDsStr = "RELATED_TABLE_IDS" )
Variables ¶
var TxnRunningStateStrs = []string{
"Idle", "Running", "LockWaiting", "Committing", "RollingBack",
}
TxnRunningStateStrs is the names of the TxnRunningStates
Functions ¶
func TxnDurationHistogram ¶
func TxnDurationHistogram(state TxnRunningState, hasLock bool) prometheus.Observer
TxnDurationHistogram returns the observer for the given state and hasLock type.
func TxnStatusEnteringCounter ¶
func TxnStatusEnteringCounter(state TxnRunningState) prometheus.Counter
TxnStatusEnteringCounter returns the counter for the given state.
Types ¶
type TrxHistoryRecorder ¶
type TrxHistoryRecorder struct {
// contains filtered or unexported fields
}
TrxHistoryRecorder is a history recorder for transaction.
var Recorder TrxHistoryRecorder = newTrxHistoryRecorder(0)
Recorder is the recorder instance.
func (*TrxHistoryRecorder) Clean ¶
func (recorder *TrxHistoryRecorder) Clean()
Clean clears the history recorder. For test only.
func (*TrxHistoryRecorder) DumpTrxSummary ¶
func (recorder *TrxHistoryRecorder) DumpTrxSummary() [][]types.Datum
DumpTrxSummary dumps the transaction summary to Datum for displaying in `TRX_SUMMARY` table.
func (*TrxHistoryRecorder) OnTrxEnd ¶
func (recorder *TrxHistoryRecorder) OnTrxEnd(info *TxnInfo)
OnTrxEnd should be called when a transaction ends, ie. leaves `TIDB_TRX` table.
func (*TrxHistoryRecorder) ResizeSummaries ¶
func (recorder *TrxHistoryRecorder) ResizeSummaries(capacity uint)
ResizeSummaries resizes the summaries capacity.
func (*TrxHistoryRecorder) SetMinDuration ¶
func (recorder *TrxHistoryRecorder) SetMinDuration(d time.Duration)
SetMinDuration sets the minimum duration for a transaction to be recorded.
type TxnInfo ¶
type TxnInfo struct { StartTS uint64 // Digest of SQL currently running CurrentSQLDigest string // Digests of all SQLs executed in the transaction. AllSQLDigests []string // Current execution state of the transaction. State TxnRunningState // When last time `State` changes, for metrics LastStateChangeTime time.Time // Last trying to block start time. Invalid if State is not TxnLockAcquiring. BlockStartTime struct { Valid bool time.Time } // How many entries are in MemDB EntriesCount uint64 // Which session this transaction belongs to ConnectionID uint64 // The user who open this session Username string // The schema this transaction works on CurrentDB string // The related table IDs. RelatedTableIDs map[int64]struct{} }
TxnInfo is information about a running transaction This is supposed to be the datasource of `TIDB_TRX` in infoschema
type TxnRunningState ¶
type TxnRunningState = int32
TxnRunningState is the current state of a transaction
const ( // TxnIdle means the transaction is idle, i.e. waiting for the user's next statement TxnIdle TxnRunningState = iota // TxnRunning means the transaction is running, i.e. executing a statement TxnRunning // TxnLockAcquiring means the transaction is trying to acquire a lock TxnLockAcquiring // TxnCommitting means“ the transaction is (at least trying to) committing TxnCommitting // TxnRollingBack means the transaction is rolling back TxnRollingBack // TxnStateCounter is a marker of the number of states, ensuring we don't miss any of them TxnStateCounter )