pagecache is a lock-free pagecache and log for building high-performance databases.
Top-level configuration for the system.
A guard that keeps the current thread pinned.
A metric collector for all pagecache users running in this process.
A materializer for things that have nothing to
materialize or recover, like a standalone
A lock-free pagecache which supports fragmented pages for dramatically improving write throughput.
A pointer to shared lock-free state bound by a pinned epoch's lifetime.
A pending log reservation which can be aborted or completed.
NB the holder should quickly call
A handle to an ongoing pagecache transaction. Ensures that any state which is removed from a shared in-memory data structure is not destroyed until all possible readers have concluded.
Points to either a memory location or a disk location to page-in data from.
A pointer to a location on disk or an off-log blob.
An Error type encapsulating various issues that may come up in both the expected and unexpected operation of a PageCache.
The result of a
The log may be configured to write data in several different ways, depending on the constraints of the system using it.
A user of a
This function is useful for inducing random jitter into our atomic operations, shaking out more possible interleavings quickly. It gets fully elliminated by the compiler in non-test code.
Pins the current thread.
Returns a reference to a dummy guard that allows unprotected access to
A pointer to an blob blob.
A log file offset.
A logical sequence number.
Allows arbitrary logic to be injected into mere operations of the
A page identifier.
The top-level result type for dealing with the PageCache.
An offset for a storage file segment.