Modules§
sled
is a high-performance embedded database with an API that is similar to aBTreeMap<[u8], [u8]>
, but with several additional capabilities for assisting creators of stateful systems.- Fully serializable (ACID) multi-
Tree
transactions
Structs§
- An atomic pointer that can be safely shared between threads.
- A batch of updates that will be applied atomically to the Tree.
- Uses a non-varint
Lsn
to mark offsets. - Compare and swap error.
- Top-level configuration for the system.
- A guard that keeps the current thread pinned.
- The
sled
embedded database! ImplementsDeref<Target = sled::Tree>
to refer to a default keyspace / namespace / bucket. - A buffer that may either be inline or remote and protected by an Arc
- An iterator over keys and values in a
Tree
. - A lazily initialized value
- A sequential store which allows users to create reservations placed at known log offsets, used for writing persistent data structures that need to know where to find persisted bits in the future.
- An owned heap-allocated object.
- A lock-free pagecache which supports linkmented pages for dramatically improving write throughput.
- A Configuration that has an associated opened file.
- A pointer to an object protected by the epoch GC.
- A subscriber listening on a specified prefix
- A flash-sympathetic persistent lock-free B+ tree.
Enums§
- A pointer to a location on disk or an off-log blob.
- An Error type encapsulating various issues that may come up in the operation of a
Db
. - An event that happened to a key that a subscriber is interested in.
- The high-level types of stored information about pages and their mutations
- The result of a read of a log message
- The high-level database mode, according to the trade-offs of the RUM conjecture.
Constants§
- Log messages have a header that might eb up to this length.
- During testing, this should never be exceeded.
- The minimum number of items per segment. Items larger than this fraction of an
io_buf
will be stored as an off-log blob. - Log segments have a header of this length.
Traits§
- A function that may be configured on a particular shared
Tree
that will be applied as a kind of read-modify-write operator to any values that are written using theTree::merge
method. - Items that may be serialized and deserialized
- A type that may be transacted on in sled transactions.
Functions§
- Pins the current thread.
- Opens a
Db
with a default configuration at the specified path. This will create a new storage directory at the specified path if it does not already exist. You can use theDb::was_recovered
method to determine if your database was recovered from a previous instance. You can useConfig::create_new
if you want to increase the chances that the database will be freshly created.
Type Aliases§
- A file offset in the database log.
- The logical sequence number of an item in the database log.
- A page identifier.
- The top-level result type for dealing with fallible operations. The errors tend to be fail-stop, and nested results are used in cases where the outer fail-stop error can have try
?
used on it, exposing the inner operation that is expected to fail under normal operation. The philosophy behind this is detailed on the sled blog.