txnengine

package
v0.0.0-...-53b40aa Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2018 License: AGPL-3.0, AGPL-3.0-only Imports: 32 Imported by: 4

Documentation

Index

Constants

View Source
const (
	Commit        = Vote(msgs.VOTE_COMMIT)
	AbortBadRead  = Vote(msgs.VOTE_ABORTBADREAD)
	AbortDeadlock = Vote(msgs.VOTE_ABORTDEADLOCK)
)

Variables

View Source
var AbortRollNotFirst = errors.New("AbortRollNotFirst")
View Source
var AbortRollNotInPermutation = errors.New("AbortRollNotInPermutation")

Functions

func ImmigrationTxnFromCap

func ImmigrationTxnFromCap(exe *dispatcher.Executor, vd *VarDispatcher, stateChange TxnLocalStateChange, reader *txnreader.TxnReader, varCaps msgs.Var_List, logger log.Logger)

func NewFrame

func NewFrame(v *Var, parent *frame, positions *common.Positions, txnId, valueTxnId *common.TxnId, valueTxn *txnreader.TxnReader, valueActions *txnreader.TxnActions, txnClock, writesClock *vc.VectorClockMutable) *frame

Types

type Ballot

type Ballot struct {
	VarUUId     *common.VarUUId
	Data        []byte
	VoteCap     *msgs.Vote
	Clock       *vc.VectorClockImmutable
	Subscribers common.TxnIds
	Vote        Vote
}

func BallotFromData

func BallotFromData(data []byte) *Ballot

func (*Ballot) Aborted

func (ballot *Ballot) Aborted() bool

func (*Ballot) String

func (b *Ballot) String() string

type BallotBuilder

type BallotBuilder struct {
	*Ballot
	Clock *vc.VectorClockMutable
}

func NewBallotBuilder

func NewBallotBuilder(vUUId *common.VarUUId, vote Vote, clock *vc.VectorClockMutable, subscriptions *Subscriptions) *BallotBuilder

func (*BallotBuilder) CreateBadReadBallot

func (ballot *BallotBuilder) CreateBadReadBallot(txnId *common.TxnId, actions *txnreader.TxnActions) *Ballot

func (*BallotBuilder) ToBallot

func (ballot *BallotBuilder) ToBallot() *Ballot

type Subscriptions

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

func NewSubscriptions

func NewSubscriptions(vm *VarManager) *Subscriptions

func NewSubscriptionsFromData

func NewSubscriptionsFromData(vm *VarManager, data []byte) (*Subscriptions, error)

func (*Subscriptions) AsData

func (s *Subscriptions) AsData() []byte

func (*Subscriptions) Committed

func (s *Subscriptions) Committed(action *localAction)

func (*Subscriptions) IsDirty

func (s *Subscriptions) IsDirty() bool

func (*Subscriptions) Status

func (s *Subscriptions) Status(sc *status.StatusConsumer)

func (*Subscriptions) Subscribers

func (s *Subscriptions) Subscribers() common.TxnIds

func (*Subscriptions) Verify

func (s *Subscriptions) Verify()

type Txn

type Txn struct {
	Id *common.TxnId

	TxnReader *txnreader.TxnReader
	// contains filtered or unexported fields
}

func TxnFromReader

func TxnFromReader(exe *dispatcher.Executor, vd *VarDispatcher, stateChange TxnLocalStateChange, ourRMId common.RMId, reader *txnreader.TxnReader, logger log.Logger) *Txn

func (*Txn) BallotOutcomeReceived

func (tro *Txn) BallotOutcomeReceived(outcome *msgs.Outcome)

Callback (from network/paxos)

func (*Txn) CompletionReceived

func (trc *Txn) CompletionReceived()

Callback (from network/paxos)

func (*Txn) LocallyComplete

func (talc *Txn) LocallyComplete()

Callback (from var-dispatcher (frames) back into txn)

func (*Txn) Start

func (txn *Txn) Start(voter bool)

func (*Txn) Status

func (txn *Txn) Status(sc *status.StatusConsumer)

func (*Txn) String

func (txn *Txn) String() string

type TxnLocalStateChange

type TxnLocalStateChange interface {
	TxnBallotsComplete(...*Ballot)
	TxnLocallyComplete(*Txn)
	TxnFinished(*Txn)
}

type Var

type Var struct {
	UUId *common.VarUUId
	// contains filtered or unexported fields
}

func NewVar

func NewVar(uuid *common.VarUUId, exe *dispatcher.Executor, db *db.Databases, vm *VarManager) *Var

func VarFromData

func VarFromData(data []byte, exe *dispatcher.Executor, db *db.Databases, vm *VarManager) (*Var, error)

func (*Var) ReceiveTxn

func (v *Var) ReceiveTxn(action *localAction, enqueuedAt time.Time)

func (*Var) ReceiveTxnOutcome

func (v *Var) ReceiveTxnOutcome(action *localAction, enqueuedAt time.Time)

func (*Var) SetCurFrame

func (v *Var) SetCurFrame(f *frame)

func (*Var) Status

func (v *Var) Status(sc *status.StatusConsumer)

func (*Var) TxnGloballyComplete

func (v *Var) TxnGloballyComplete(action *localAction, enqueuedAt time.Time)

type VarDispatcher

type VarDispatcher struct {
	dispatcher.Dispatcher
	// contains filtered or unexported fields
}

func NewVarDispatcher

func (*VarDispatcher) ApplyToVar

func (vd *VarDispatcher) ApplyToVar(fun func(*Var), createIfMissing bool, vUUId *common.VarUUId)

func (*VarDispatcher) Status

func (vd *VarDispatcher) Status(sc *status.StatusConsumer)

type VarManager

type VarManager struct {
	localconnection.LocalConnection

	Topology *configuration.Topology
	RMId     common.RMId

	Servers map[common.RMId]sconn.ServerConnection

	RollAllowed bool
	// contains filtered or unexported fields
}

func NewVarManager

func (*VarManager) ApplyToVar

func (vm *VarManager) ApplyToVar(fun func(*Var), createIfMissing bool, uuid *common.VarUUId)

func (*VarManager) ConnectedRMs

func (vm *VarManager) ConnectedRMs(servers map[common.RMId]sconn.ServerConnection)

func (*VarManager) ConnectionEstablished

func (vm *VarManager) ConnectionEstablished(conn sconn.ServerConnection, servers map[common.RMId]sconn.ServerConnection, done func())

func (*VarManager) ConnectionLost

func (vm *VarManager) ConnectionLost(rmId common.RMId, servers map[common.RMId]sconn.ServerConnection)

func (*VarManager) ScheduleCallback

func (vm *VarManager) ScheduleCallback(interval time.Duration, fun tw.Event)

func (*VarManager) SetInactive

func (vm *VarManager) SetInactive(v *Var)

var.VarLifecycle interface

func (*VarManager) Status

func (vm *VarManager) Status(sc *status.StatusConsumer)

func (*VarManager) TopologyChanged

func (vm *VarManager) TopologyChanged(topology *configuration.Topology, done func(bool))

type Vote

type Vote msgs.Vote_Which

func (Vote) String

func (v Vote) String() string

func (Vote) ToVoteEnum

func (v Vote) ToVoteEnum() msgs.VoteEnum

Jump to

Keyboard shortcuts

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