Skip to content
uwiger edited this page Jul 5, 2012 · 5 revisions

KVDB - A Key-Value Database

Introduction

KVDB is a key-value database system specifically aimed at supporting NETCONF-style configuration data management, both on the server side and the device side. To this end, kvdb supports different storage backends, with different characteristics, and offers a fairly specialized API.

Some notable features:

  • Transactions: currently being completed, but basically working
  • Configuration data API, with support for efficiently traversing tree structures
  • Flexible indexing, on single-valued or multi-valued attributes, including indexing callbacks
  • Schema-based validation and event reporting, configurable per-table
  • Persistent FIFO-, LIFO-, and priority-based queues
  • Backends supported: leveldb and sqlite3 (both persistent), and ets (either ram-only, or persistent through transaction logging)

Among the features that remain to be implemented are:

  • Distribution: while this would seem like a fundamental omission, work has been done to prepare for it
  • Locking: a locking library exists, but hasn't been integrated with kvdb yet
Clone this wiki locally