Hibari (database)

From Bauman National Library
This page was last modified on 19 June 2016, at 10:49.
</td></tr>
Hibari
Developer(s) Hibari developers
Initial release 2010
Stable release
v0.1.11
Repository {{#property:P1324}}
Development status Active
Written in Erlang
Operating system Cross-platform
Available in English, Japanese
Type Key-value store
License Apache License 2.0
Website https://github.com/hibari/hibari

Hibari is a production-ready, distributed, key-value, big data store. Hibari uses chain replication for strong consistency, high-availability, and durability. Hibari has excellent performance especially for read and large value operations. 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.

History

Hibari was originally written by Cloudian, Inc., formerly Gemini Mobile Technologies, to support mobile messaging and email services. Hibari was open-sourced under the Apache Public License version 2.0 in July 2010.

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.

Hibari Architecture

From a logical point of view, Hibari’s architecture has three layers:

Top layer: consistent hashing Middle layer: chain replication Bottom layer: the storage brick

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

Hibari Client API

Supported Operations:

  • Data Insertion
  • Data Retrieval
  • Data Deletion
  • Compound Operations
  • Fold Operations

Check and Swap (CAS)

If desired, clients can apply a “check and swap” (or “test and set”) logic to data insertion, retrieval, and deletion operations so that the operation will be executed only if the target key has the exact timestamp specified in the request.

External Links