Hibari DB


Table of Contents

1. A Distributed, Consistent, Ordered Key-Value Store
2. Distinct Features
3. Hibari’s Documentation
4. Hibari’s Origins

1. A Distributed, Consistent, Ordered Key-Value Store

Hibari is a distributed, ordered key-value store with strong consistency guarantee. Hibari is written in Erlang and designed for being:

  • Fast, Read Optimized: Hibari serves read and write requests in short and predictable latency. Hibari has excellent performance especially for read and large value operations
  • High Bandwidth: Batch and lock-less operations help to achieve high throughput while ensuring data consistency and durability
  • Big Data: Can store Peta Bytes of data by automatically distributing data across servers. The largest production Hibari cluster spans across 100 of servers
  • Reliable: High fault tolerance by replicating data between servers. Data is repaired automatically after a server failure

Hibari is able to deliver scalable high performance that is competitive with leading open source NOSQL (Not Only SQL) storage systems, while also providing the data durability and strong consistency that many systems lack. Hibari’s performance relative to other NOSQL systems is particularly strong for reads and for large value (> 200KB) operations.

As one example of real-world performance, in a multi-million user webmail deployment equipped with traditional HDDs (non SSDs), Hibari is processing about 2,200 transactions per second, with read latencies averaging between 1 and 20 milliseconds and write latencies averaging between 20 and 80 milliseconds.

2. Distinct Features

Unlike many other distributed databases, Hibari uses "chain replication methodology" and delivers distinct features.

  • Ordered Key-Values: Data is distributed across "chains" by key prefixes, then keys within a chain are sorted by lexicographic order
  • Always Guarantees Strong Consistency: This simplifies creation of robust client applications

    • Compare and Swap (CAS): key timestamping mechanism that facilitates "test-and-set" type operations
    • Micro-Transaction: multi-key atomic transactions, within range limits
  • Custom Metadata: per-key custom metadata
  • TTL (Time To Live): per-key expiration times

3. Hibari’s Documentation

The Hibari Application Developer’s Guide is a good first step to get started quickly. Check the download, the build, and the install instructions. The Hibari Tutorial is another resource that highlights key sections of the Hibari Application Developer’s Guide.

Two additional documents are the Hibari System Administrator’s Guide and the Hibari Contributor’s Guide. Reading the System Administrator’s Guide is STRONGLY recommended.

Read the CHANGELOG page for a full list of additions, changes, and bug fixes.

Read the FAQ page for common questions and answers.

The documentation is in a state of change and improvement. Contributions from the wider world are welcome. :-)

4. Hibari’s Origins

Hibari was originally written by Gemini Mobile Technologies to support mobile messaging and email services. Hibari was released outside of Gemini under the Apache Public License version 2.0 in July 2010. Hibari was moved from SourceForge to GitHub in January 2011.

Hibari has been deployed by multiple telecom carriers in Asia and Europe. Hibari may lack some features such as monitoring, event and alarm management, and other "production environment" support services. Since telecom operator has its own data center support infrastructure, Hibari’s development has not included many services that would be redundant in a carrier environment. We hope that Hibari’s release to the open source community will close those functional gaps as Hibari spreads outside of carrier data centers.

Copyright (C) 2005-2015 Hibari developers.  All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.