latentcopilot

package
v0.0.0-...-ef9f1ab Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const ADAPTIVE_TIMEOUT_ENABLED = false

variable controlling toggle mode

View Source
const ADAPT_TIME_SEC = 10
View Source
const BATCH_INTERVAL = 100 * time.Microsecond
View Source
const BEACON_FAILURE_THRESHOLD = 1

Detect failure if miss >= BEACON_FAILURE_THRESHOLD beacons in a row

View Source
const BEACON_MISS_INTERVAL = 1000 * 1e6 // 110 ms

Miss a beacon if time since last beacon received >= BEACON_MISS_INTERVAL

View Source
const BEACON_SENDING_INTERVAL = 100 * 1e6 // 100 ms

Heartbeat/Beacon

View Source
const BF_K = 4
View Source
const BF_M_N = 32.0
View Source
const CHECKPOINT_PERIOD = 10000
View Source
const COMMIT_GRACE_PERIOD = 10 * time.Millisecond // 10 ms
View Source
const DO_CHECKPOINTING = false
View Source
const DS = 1
View Source
const FALSE = uint8(0)
View Source
const FAST_PATH_TIMEOUT = 5 * 1e6 // 5ms
View Source
const HIGH_PRIORITY_LEADER = 0
View Source
const HT_INIT_SIZE = 200000
View Source
const INJECT_SLOWDOWN = false

injecting slowdown

View Source
const LATENCY_THRESHOLD = 180 * time.Second
View Source
const LATENT_PIILOT_DELAY = 10 * time.Millisecond

delay for latent copilot

View Source
const MAX_BATCH = 5000
View Source
const MAX_CLIENTS = 100 // increase this if experimenting with >100 clients
View Source
const MIN_NEW_COMMITS_TO_BECOME_LATENT = 50
View Source
const MIN_NEW_PROPOSALS_TO_BECOME_ACTIVE = 50
View Source
const NUM_LEADERS = 2
View Source
const PINGPONG = false

Enable/Disable Pingpong optimization 1

View Source
const PINGPONG_TIMEOUT = 1000 * time.Microsecond
View Source
const PINGPONG_TIMEOUT_ENABLED = true
View Source
const PRINT_STATS = false

printing stats

View Source
const RECORD_EXEC_STATS = false

record execution stats

View Source
const REPLICA_ID_BITMASK = int32(1<<REPLICA_ID_NBITS - 1)
View Source
const REPLICA_ID_NBITS = 4

Ballot number is comprised of 3 parts: - subballot: 24 bits - replicaId of original proposer: 4 bits - replicaId of current owner: 4 bits total nbits should be 32 (we use int32 for ballot)

View Source
const SWITCHING_MODE_WINDOW = 100 * time.Millisecond
View Source
const TRUE = uint8(1)

Variables

This section is empty.

Functions

This section is empty.

Types

type BatchExecLatency

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

type ExecStats

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

Execution stats

type Instance

type Instance struct {
	Cmds []state.Command

	Status int8
	Deps   []int32

	Index, Lowlink int
	// contains filtered or unexported fields
}

type LeaderBookkeeping

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

type RecoveryInstance

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

type Replica

type Replica struct {
	*genericsmr.Replica

	InstanceSpace [][]*Instance // the space of all instances (used and not yet used)

	CommittedUpTo []int32 // highest committed instance per replica that this replica knows about
	ExecedUpTo    []int32 // instance up to which all commands have been executed (including iteslf)

	IsLeader1 bool // does this replica think it is the leader 1
	IsLeader2 bool // does this replica think it is the leader 2

	IsActive bool // active or latent pilot
	// contains filtered or unexported fields
}

func NewReplica

func NewReplica(id int, peerAddrList []string, thrifty bool, exec bool, dreply bool, beacon bool, durable bool, rreply bool) *Replica

type Result

type Result struct {
	//Cache   state.Value
	Replied bool
}
Helper map to check duplicating execution

var execMap map[state.OperationId]bool

type Stats

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

type ViewChangeState

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

type ViewManagerBookkeeping

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

Jump to

Keyboard shortcuts

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