Documentation
¶
Overview ¶
Package recovery provides crash recovery for XxSql storage engine.
Index ¶
- type Manager
- func (m *Manager) ClearRecoveryState() error
- func (m *Manager) GetRecoveryLogs() ([]RecoveryLog, error)
- func (m *Manager) GetState() *RecoveryState
- func (m *Manager) LoadRecoveryState() (*RecoveryState, error)
- func (m *Manager) LogRecovery(phase, message string, success bool) error
- func (m *Manager) MarkClean() error
- func (m *Manager) MarkUnclean() error
- func (m *Manager) NeedRecovery() (bool, error)
- func (m *Manager) Recover() (*RecoveryState, error)
- func (m *Manager) RegisterTable(name string, tbl *table.Table)
- func (m *Manager) SaveRecoveryState() error
- func (m *Manager) SetSequenceManager(sm *sequence.Manager)
- func (m *Manager) UnregisterTable(name string)
- type ManagerConfig
- type RecoveryLog
- type RecoveryState
- type TransactionState
- type Value
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles crash recovery operations.
func NewManager ¶
func NewManager(config ManagerConfig) *Manager
NewManager creates a new recovery manager.
func (*Manager) ClearRecoveryState ¶
ClearRecoveryState removes recovery state file.
func (*Manager) GetRecoveryLogs ¶
func (m *Manager) GetRecoveryLogs() ([]RecoveryLog, error)
GetRecoveryLogs returns recent recovery logs.
func (*Manager) GetState ¶
func (m *Manager) GetState() *RecoveryState
GetState returns current recovery state (thread-safe).
func (*Manager) LoadRecoveryState ¶
func (m *Manager) LoadRecoveryState() (*RecoveryState, error)
LoadRecoveryState loads recovery state from disk.
func (*Manager) LogRecovery ¶
LogRecovery logs a recovery event.
func (*Manager) MarkUnclean ¶
MarkUnclean marks database as unclean for recovery detection.
func (*Manager) NeedRecovery ¶
NeedRecovery checks if recovery is needed.
func (*Manager) Recover ¶
func (m *Manager) Recover() (*RecoveryState, error)
Recover performs crash recovery using ARIES-style algorithm. Returns the recovery state and any error.
func (*Manager) RegisterTable ¶
RegisterTable registers a table for recovery.
func (*Manager) SaveRecoveryState ¶
SaveRecoveryState saves recovery state to disk.
func (*Manager) SetSequenceManager ¶
SetSequenceManager sets the sequence manager.
func (*Manager) UnregisterTable ¶
UnregisterTable unregisters a table.
type ManagerConfig ¶
type ManagerConfig struct {
DataDir string
WALManager *wal.Manager
BufferPool *buffer.BufferPool
CheckpointMgr *checkpoint.Manager
}
ManagerConfig holds recovery manager configuration.
type RecoveryLog ¶
type RecoveryLog struct {
Timestamp time.Time `json:"timestamp"`
Phase string `json:"phase"`
Message string `json:"message"`
Success bool `json:"success"`
}
RecoveryLog logs a recovery operation.
type RecoveryState ¶
type RecoveryState struct {
Phase string `json:"phase"`
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time,omitempty"`
RecordsRead int64 `json:"records_read"`
RecordsRedone int64 `json:"records_redone"`
RecordsUndone int64 `json:"records_undone"`
TxnsRecovered int `json:"txns_recovered"`
PagesRecovered int `json:"pages_recovered"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
}
RecoveryState represents the state of recovery.