Project

General

Profile

Actions

Add LevelDB support to ceph cluster backend store

Summary

Abstract a general interface and implement a LevelDB driver for ceph cluster backend store.

Owners

  • Name (Affiliation)
  • Name (Affiliation)
  • Name

Interested Parties

  • Haomai Wang (UnitedStack)
  • Joao Luis (Inktank)
  • Sam Just (Inktank)

Current Status

There isn't exists any other implementation except the local filesystem implementation which support POSIX interface.

Detailed Description

Every node of ceph cluster has a backend filesystem such as btrfs, xfs and ext4 that provides storage for data objects, whose location are determined by CRUSH algorithm. There should exists an abstract interface sitting between osd and backend store, allowing different backend store implementation. Currently, we only have general POSIX interface. LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. We could implement a LevelDB backend to support base operations correspond to POSIX operations. LevelDB driver enables gateway to communicate with LevelDB to store objects on the node basis.
LevelDB driver is attractive by the folks who own a special use case such as a write-heave system. If we can abstract a general interface, we can choose other DBM if you find it more suitable, such as Kyoto Cabinet, BDB. Futhermore, we can choose backen store for each OSD node. So we have different OSD type for special purpose.
Expected Results: Objects can be stored reliably to LevelDB. The IO performance and recovery process can be comparable to original stores. And for special case, LevelDB driver should have much better performance than local filesystem backend driver. The snapshot and any features you think of are optional.

Work items

Coding tasks

  1. Task 1
  2. Task 2
  3. Task 3

Build / release tasks

  1. Task 1
  2. Task 2
  3. Task 3

Documentation tasks

  1. Task 1
  2. Task 2
  3. Task 3

Deprecation tasks

  1. Task 1
  2. Task 2
  3. Task 3

Updated by Jessica Mack almost 9 years ago · 1 revisions