This page was last modified on 19 June 2016, at 10:49.
|Available in||English, Japanese|
|License||Apache License 2.0|
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.
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.
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
- 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
- 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.