Refactor shadow WAL to use segments
This commit is contained in:
@@ -40,6 +40,14 @@ var (
|
||||
ErrChecksumMismatch = errors.New("invalid replica, checksum mismatch")
|
||||
)
|
||||
|
||||
var (
|
||||
// LogWriter is the destination writer for all logging.
|
||||
LogWriter = os.Stderr
|
||||
|
||||
// LogFlags are the flags passed to log.New().
|
||||
LogFlags = 0
|
||||
)
|
||||
|
||||
// SnapshotIterator represents an iterator over a collection of snapshot metadata.
|
||||
type SnapshotIterator interface {
|
||||
io.Closer
|
||||
@@ -291,6 +299,26 @@ func (p Pos) Truncate() Pos {
|
||||
return Pos{Generation: p.Generation, Index: p.Index}
|
||||
}
|
||||
|
||||
// ComparePos returns -1 if a is less than b, 1 if a is greater than b, and
|
||||
// returns 0 if a and b are equal. Only index & offset are compared.
|
||||
// Returns an error if generations are not equal.
|
||||
func ComparePos(a, b Pos) (int, error) {
|
||||
if a.Generation != b.Generation {
|
||||
return 0, fmt.Errorf("generation mismatch")
|
||||
}
|
||||
|
||||
if a.Index < b.Index {
|
||||
return -1, nil
|
||||
} else if a.Index > b.Index {
|
||||
return 1, nil
|
||||
} else if a.Offset < b.Offset {
|
||||
return -1, nil
|
||||
} else if a.Offset > b.Offset {
|
||||
return 1, nil
|
||||
}
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
// Checksum computes a running SQLite checksum over a byte slice.
|
||||
func Checksum(bo binary.ByteOrder, s0, s1 uint32, b []byte) (uint32, uint32) {
|
||||
assert(len(b)%8 == 0, "misaligned checksum byte slice")
|
||||
|
||||
Reference in New Issue
Block a user