Crate shale

Source

Modules§

block
compact
util

Structs§

DiskWrite
MummyObj
Reference implementation of TypedView. It takes any type that implements MummyItem and should be useful for most applications.
Obj
A wrapper of TypedView to enable writes. The direct construction (by Obj::from_typed_view or MummyObj::ptr_to_obj) could be useful for some unsafe access to a low-level item (e.g. headers/metadata at bootstrap or part of ShaleStore implementation) stored at a given ObjPtr . Users of ShaleStore implementation, however, will only use ObjRef for safeguarded access.
ObjCache
ObjRef pool that is used by ShaleStore implementation to construct ObjRefs.
ObjPtr
Opaque typed pointer in the 64-bit virtual addressable space.
ObjRef
User handle that offers read & write access to the stored ShaleStore item.
PlainMem
Purely volatile, vector-based implementation for MemStore. This is good for testing or trying out stuff (persistent data structures) built on ShaleStore in memory, without having to write your own MemStore implementation.

Enums§

ShaleError

Constants§

INVALID_SPACE_ID

Traits§

MemStore
In-memory store that offers access to intervals from a linear byte space, which is usually backed by a cached/memory-mapped pool of the accessed intervals from the underlying linear persistent store. Reads could trigger disk reads to bring data into memory, but writes will only be visible in memory (it does not write back to the disk).
MemView
A handle that pins and provides a readable access to a portion of the linear memory image.
MummyItem
A stored item type that can be decoded from or encoded to on-disk raw bytes. An efficient implementation could be directly transmuting to/from a POD struct. But sometimes necessary compression/decompression is needed to reduce disk I/O and facilitate faster in-memory access.
ShaleStore
A persistent item storage backed by linear logical space. New items can be created and old items could be retrieved or dropped.
TypedView
A addressed, typed, and read-writable handle for the stored item in ShaleStore. The object represents the decoded/mapped data. The implementation of ShaleStore could use ObjCache to turn a TypedView into an ObjRef.

Functions§

to_dehydrated

Type Aliases§

SpaceID