Crate pagecache[−][src]
pagecache
is a lock-free pagecache and log for building high-performance databases.
Re-exports
pub use self::log::Log; |
pub use self::log::LogRead; |
Modules
log |
Working with
|
Structs
Config |
A finalized |
ConfigBuilder |
Top-level configuration for the system. |
M |
A metric collector for all pagecache users running in this process. |
NullMaterializer |
A materializer for things that have nothing to
materialize or recover, like a standalone |
PageCache |
A lock-free pagecache which supports fragmented pages for dramatically improving write throughput. |
PagePtr |
A pointer to shared lock-free state bound by a pinned epoch's lifetime. |
Reservation |
A pending log reservation which can be aborted or completed.
NB the holder should quickly call |
Tx |
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. |
Enums
CacheEntry |
Points to either a memory location or a disk location to page-in data from. |
DiskPtr |
A pointer to a location on disk or an off-log blob. |
Error |
An Error type encapsulating various issues that may come up in both the expected and unexpected operation of a PageCache. |
PageGet |
The result of a |
SegmentMode |
The log may be configured to write data in several different ways, depending on the constraints of the system using it. |
Traits
Materializer |
A user of a |
Functions
debug_delay |
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. |
pin |
Enter an epoch which allows us to safely access shared data structures without using mutexes. |
Type Definitions
BlobPointer |
A pointer to an blob blob. |
Guard |
A guard used with epoch-based reclamation (EBR) to track threads accessing shared lock-free data structures, and safely drop data after any thread may have accessed it. |
LogId |
A log file offset. |
Lsn |
A logical sequence number. |
MergeOperator |
Allows arbitrary logic to be injected into mere operations of the |
PageId |
A page identifier. |
Result |
The top-level result type for dealing with the PageCache. |
SegmentId |
An offset for a storage file segment. |