[−][src]Crate pagecache
pagecache
is a lock-free pagecache and log for building high-performance databases.
Re-exports
pub use self::logger::Log; |
pub use self::logger::LogRead; |
Modules
logger | Working with |
Structs
Config | A finalized |
ConfigBuilder | Top-level configuration for the system. |
Guard | A guard that keeps the current thread pinned. |
M | A metric collector for all pagecache users running in this process. |
Meta | A simple map that can be used to store metadata for the pagecache tenant. |
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 | Pins the current thread. |
unprotected⚠ | Returns a reference to a dummy guard that allows unprotected access to |
Type Definitions
BlobPointer | A pointer to an blob blob. |
FastMap1 | A fast map that is not resistant to collision attacks. Works on one byte at a time. |
FastMap4 | A fast map that is not resistant to collision attacks. Works on 4 bytes at a time. |
FastMap8 | A fast map that is not resistant to collision attacks. Works on 8 bytes at a time. |
FastSet1 | A fast set that is not resistant to collision attacks. Works on one byte at a time. |
FastSet4 | A fast set that is not resistant to collision attacks. Works on 4 bytes at a time. |
FastSet8 | A fast set that is not resistant to collision attacks. Works on 8 bytes at a time. |
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. |