Hibari (meaning "skylark" in Japanese) is a database engine for high reliability and big data storage, which can be used in cloud computing environments, such as webmail, SNS and other environments requiring T/P level data storage. Hibari supports Java, C/C++, Python, Ruby, And Erlang language.
Hibari is not a relational database. It mainly stores data through the key value method.
Hibari is a distributed ordered key value storage with strong consistency guarantee. Hibari is written in Erlang to:
-
Fast, read optimized: Hibari provides read and write requests with short and predictable latency. Hibari has excellent performance, especially for reading and high-value operations
-
High bandwidth: Batch processing and lockless operations help achieve high throughput while ensuring data consistency and persistence
-
big data: Peta Bytes data can be stored by automatically allocating data between servers. The largest production Hibari cluster spans 100 servers
-
Reliable: High error tolerance is achieved by replicating data between servers. Data will be automatically repaired after server failure
Hibari can provide scalable high performance, which is comparable to the leading open source NOSQL (not only SQL) storage system, but also provides data persistence and strong consistency that many systems lack. Hibari's performance is particularly powerful for reading and large value (>200KB) operations compared to other NOSQL systems.
As an example of real performance, in the web mail deployment of millions of users equipped with traditional HDDs (non SSDs), Hibari processes about 2200 transactions per second, with an average read latency of 1 to 20 milliseconds, and an average write latency of 20 milliseconds. And 80 milliseconds.
characteristic
Unlike many other distributed databases, Hibari uses“ Chain copy method ”And provides unique functions.
-
Ordered key value: Data is distributed in the "chain" through key prefixes, and then the keys in the chain are sorted in dictionary order
-
Always ensure strong consistency : Simplifies the creation of robust client applications
- Compare and Exchange (CAS): Key timestamp mechanism to facilitate "test and set" type operations
- Micro trading: Multi bond atomic transactions in the range
-
user-defined metadata : User defined metadata per key
-
TTL : Expiration time of each key