recovery

package
v0.0.0-...-8a2c9d0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleAbort

func HandleAbort(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle abort.

func HandleCheckpoint

func HandleCheckpoint(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle checkpoint.

func HandleCrash

func HandleCrash(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle crash.

func HandleCreateTable

func HandleCreateTable(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle create table.

func HandleDelete

func HandleDelete(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, clientId uuid.UUID) (err error)

Handle delete.

func HandleFind

func HandleFind(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle find.

func HandleInsert

func HandleInsert(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, clientId uuid.UUID) (err error)

Handle insert.

func HandleJoin

func HandleJoin(d *db.Database, tm *concurrency.TransactionManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle join.

func HandleLock

func HandleLock(d *db.Database, tm *concurrency.TransactionManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle write lock requests.

func HandlePretty

func HandlePretty(d *db.Database, payload string, w io.Writer) (err error)

Handle pretty printing.

func HandleSelect

func HandleSelect(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle select.

func HandleTransaction

func HandleTransaction(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, w io.Writer, clientId uuid.UUID) (err error)

Handle transaction.

func HandleUpdate

func HandleUpdate(d *db.Database, tm *concurrency.TransactionManager, rm *RecoveryManager, payload string, clientId uuid.UUID) (err error)

Handle update.

func Prime

func Prime(folder string) (*db.Database, error)

Primes the database for recovery

func RecoveryREPL

Recovery REPL.

Types

type Action

type Action string

The type of edit action

const (
	INSERT_ACTION Action = "INSERT"
	UPDATE_ACTION Action = "UPDATE"
	DELETE_ACTION Action = "DELETE"
)

type Log

type Log interface {
	// contains filtered or unexported methods
}

Interface that all Log structs share.

func FromString

func FromString(s string) (Log, error)

Convert a textual log to its respective struct. Returns an error if the string could not be parsed into a log.

type RecoveryManager

type RecoveryManager struct {
	// contains filtered or unexported fields
}

Recovery Manager.

func NewRecoveryManager

func NewRecoveryManager(
	d *db.Database,
	tm *concurrency.TransactionManager,
	logName string,
) (*RecoveryManager, error)

Construct a recovery manager.

func (*RecoveryManager) Checkpoint

func (rm *RecoveryManager) Checkpoint()

Flush all pages to disk and write a checkpoint log.

func (*RecoveryManager) Commit

func (rm *RecoveryManager) Commit(clientId uuid.UUID)

Write a transaction commit log.

func (*RecoveryManager) Delta

func (rm *RecoveryManager) Delta() error

Should be called at end of Checkpoint.

func (*RecoveryManager) Edit

func (rm *RecoveryManager) Edit(clientId uuid.UUID, table db.Index, action Action, key int64, oldval int64, newval int64)

Write an Edit log.

func (*RecoveryManager) Recover

func (rm *RecoveryManager) Recover() error

Do a full recovery to the most recent checkpoint on startup.

func (*RecoveryManager) Redo

func (rm *RecoveryManager) Redo(log Log) error

Redo a given log's action.

func (*RecoveryManager) Rollback

func (rm *RecoveryManager) Rollback(clientId uuid.UUID) error

Roll back a particular transaction.

func (*RecoveryManager) Start

func (rm *RecoveryManager) Start(clientId uuid.UUID)

Write a transaction start log.

func (*RecoveryManager) Table

func (rm *RecoveryManager) Table(tblType string, tblName string)

Write a Table log.

func (*RecoveryManager) Undo

func (rm *RecoveryManager) Undo(log Log) error

Undo a given log's action.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL