Categorygithub.com/mit-pdos/go-journal
module
0.5.4
Repository: https://github.com/mit-pdos/go-journal.git
Documentation: pkg.go.dev

# README

GoTxn: a verified, concurrent, crash-safe transaction system

CI

GoTxn is a transaction system that makes it easy to safely access a disk with concurrent transactions that are atomic if the system crashes in the middle. The implementation is verified in Perennial, and the proof can be found alongside the Perennial framework.

The biggest use of GoTxn is GoNFS, a verified implementation of the Network File System (NFS) API that uses GoTxn to simplify implementing and verifying a concurrent file system.

This repository is still called go-journal, as GoTxn evolved from a journaling system to a transaction system. The journaling layer is still available as github.com/mit-pdos/go-journal/jrnl.

Publications

GoJournal: a verified, concurrent, crash-safe journaling system at OSDI 2021

# Packages

No description provided by the author
No description provided by the author
buf manages sub-block disk objects, to be packed into disk blocks.
No description provided by the author
Package jrnl is the top-level journal API.
No description provided by the author
lockmap is a sharded lock map.
Package obj atomically installs objects from modified buffers in their corresponding disk blocks and writes the blocks to the write-ahead log.
Package txn implements a full transaction interface on top of GoJournal.
No description provided by the author
wal implements write-ahead logging The layout of log: [ installed writes | logged writes | in-memory/logged | unstable in-memory ] ^ ^ ^ ^ 0 memStart diskEnd nextDiskEnd Blocks in the range [diskEnd, nextDiskEnd) are in the process of being logged.