Need help with rewind?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

kellabyte
123 Stars 3 Forks MIT License 58 Commits 2 Opened issues

Description

Rewind is a high performance command log layer for LMDB.

Services available

!
?

Need anything else?

Contributors list

# 117,290
C
signalr
asp
Shell
53 commits
# 20,440
Linux
c-plus-...
monero
q
1 commit

Rewind

Rewind is a command log library. Similar to a WAL (write-ahead-log).

Command logging provides durability of database operations. Command logging keeps a record of every transaction. If the server fails for any reason, the database can restore the last snapshot and "replay" the log entries to recover the database.

Differences between a Command Log and a Write-Ahead-Log

The difference between a

command log
and
write-ahead-log
is that a
command log
records the invocations, whereas a
WAL
records the consequences of the transactions.

Goals

The goal for Rewind is to implement an optional logical command log for LMDB. LMDB is a very fast storage engine that performs very fast for many types of workloads but there are a few workloads that could potentially benefit from having a commit log in place. It's my long standing theory that a command log or WAL can help LMDB catch up to RocksDB in benchmarks RocksDB excels against LMDB without all the LSM complexity and LSM drawbacks. Rewind is an attempt to implement my ideas without adding a bunch of internal complexity to LMDB while enabling most LMDB consumers to use Rewind with very little or no code change.

Log entry format

TODO.

Prerequisites

If you're on macOS don't forget to install the CLI developer tools.

xcode-select --install

Compiling

make

Running tests

make test

=============================================================================== test cases: 1 | 1 passed assertions: - none -

Running benchmarks

make benchmark

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.