Reverbrain wiki

Site Tools


eblob:eblob

Eblob

Eblob is an append-only low-level IO library, which saves data in blob files. Elliptics uses it as one of its low-level IO backends.

Features

  • fast append-only updates which do not require disk seeks
  • compact index to populate lookup information from disk
  • multi-threaded index reading during startup
  • O(1) data location lookup time (for blobs which are opened for writing)
  • readahead games with data and index blobs for maximum performance
  • multiple blob files support (tested with single blob file on block device too)
  • optional sha512 on-disk checksumming
  • 2-stage write: prepare (which reserves the space) and commit (which calculates checksum and update in-memory and on-disk indexes). One can (re)write data in between without locks
  • usually 1-stage write interface
  • defragmentation tool: entries to be deleted are only marked as removed, eblob_check will iterate over specified blob files and actually remove those blocks
  • run-time sync support – dedicated thread runs fsync in background on all files on timed base

Configuration

Interface

Internals

Performance

Knowledge Base

Homepage

Blueprints

Roadmap

Source

Eblob can be downloaded from http://github.com/reverbrain/eblob

eblob/eblob.txt · Last modified: 2013/09/29 15:16 by bayonet