Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/al8n/valog

A lock-free, generic, lightweight value log for WiscKey or Bitcask architecture databases.
https://github.com/al8n/valog

bitcask bitcask-storage-engine lsm rust rust-lang value-log wisckey write-ahead-log

Last synced: 23 days ago
JSON representation

A lock-free, generic, lightweight value log for WiscKey or Bitcask architecture databases.

Awesome Lists containing this project

README

        


VaLog



A lock-free, generic, lightweight value log for WiscKey architecture databases.

[github][Github-url]
LoC
[Build][CI-url]
[codecov][codecov-url]

[docs.rs][doc-url]
[crates.io][crates-url]
[crates.io][crates-url]
license

English | [简体中文][zh-cn-url]

## Introduction

This crate is designed for databases based on the WiscKey architecture, which separates the storage of keys from values. Consequently, this crate focuses exclusively on managing values. Users are responsible for storing the value pointers returned by the `write*` APIs.

### Features

- **Lock-Free and Concurrently Safe:** Engineered for high-performance concurrent access without the use of locks.
- **Generic Data Structure Support:** Provides flexibility to accommodate a variety of data types.
- **In-Place Writing:** Guarantees no additional memory allocation during write operations.
- **Zero-Copy Reads:** Enables efficient reading without unnecessary data duplication.
- **Three Mode Support:**
- **`Vec`:** Usable in environments without the standard library (`no_std`).
- **Anonymous Memory Mapping:** Efficiently manages memory through an anonymous memory map.
- **File-Backed Memory Map:** Functions similarly to an in-memory arena but stores data persistently on disk.

This crate offers a robust solution for managing value storage in WiscKey-based databases, prioritizing both performance and efficiency.

## Installation

- Default

```toml
[dependencies]
valog = "0.2"
```

- `no_std` full in-memory mode

```toml
[dependencies]
valog = { version = "0.2", default-features = false, features = ["alloc"] }
```

#### License

`valog` is under the terms of both the MIT license and the
Apache License (Version 2.0).

See [LICENSE-APACHE](LICENSE-APACHE), [LICENSE-MIT](LICENSE-MIT) for details.

Copyright (c) 2024 Al Liu.

[Github-url]: https://github.com/al8n/valog/
[CI-url]: https://github.com/al8n/valog/actions/workflows/ci.yml
[doc-url]: https://docs.rs/valog
[crates-url]: https://crates.io/crates/valog
[codecov-url]: https://app.codecov.io/gh/al8n/valog/
[zh-cn-url]: https://github.com/al8n/valog/tree/main/README-zh_CN.md