github.com/zuoyebang/bitalosdb@v1.1.1-0.20240516111551-79a8c4d8ce20/README.md (about)

     1  ![bitalos](./docs/bitalos.png)
     2  
     3  ### Bitalosdb is a high-performance KV storage engine. [中文版](./README_CN.md)
     4  
     5  ## Introduction
     6  
     7  - Bitalosdb is a high-performance KV storage engine (self-developed), which is based on the creative IO architecture and storage technology and focuses on solving the problem of LSM-Tree read and write amplification. As a substitute for Rocksdb, Bitalosdb can improve read and write performance greatly.
     8  
     9  ## Team
    10  
    11  - Produced: Zuoyebang Company - Platform technical team
    12  
    13  - Author: Xu Ruibo(hustxrb@163.com)
    14  
    15  - Contributors: Xing Fu(wzxingfu@gmail.com), Lu Wenwei(422213023@qq.com), Liu Fang(killcode13@sina.com)
    16  
    17  ## Key Technology
    18  
    19  - Bithash (KV separation technology), significantly reduce write amplification. For bithash, time complexity of retrieval is O(1). GC can be completed independently, and value and index are decoupled.
    20  
    21  - Bitalostree (high-performance compression index technology), basically eliminate read amplification. If B+ Tree has a number of huge Pages, write amplification is a severe problem. With a creative index compression technology, Bitalostree eliminates B+ Tree write amplification, and improves the read performance.
    22  
    23  - Bitalostable (cold and hot data separation technology), stores cold data, which is calculated according to the data scale and access frequency. Storage engine writes cold data to Bitalostable when QPS becomes low. Improve data compression, reduce index memory consumption, and achieve more rational resource utilization. (open source stable edition has basic features, enterprise edition supports more comprehensive hot and cold separation).
    24  
    25  ## Performance
    26  
    27  - This benchmark is based on Bitloasdb version (v5.0) and rocksdb stable version (v7.6.0).
    28  
    29  ### Hardware
    30  
    31  ```
    32  CPU:    Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz
    33  Memory: 384GB
    34  Disk:   2*3.5TB NVMe SSD
    35  ```
    36  
    37  ### Program
    38  
    39  - Benchmark thread number: 8
    40  
    41  - Program cpu cgroup: 8 core
    42  
    43  - Comparison standard: QPS on single-core (multi-core QPS / core number), single-core performance reflects cost advantage better.
    44  
    45  ### Data
    46  
    47  - Key-value spec: key-size=32B、value-size=1KB
    48  
    49  - Comparison dimensions: Total data size(25/50/100GB) * IO ratio(100% random write, 100% random read, 50% random write + 50% random read, 30% random write + 70% random read)
    50  
    51  ### Config
    52  
    53  - rocksdb
    54  
    55  ```
    56  Memtable:256MB
    57  WAL:enable
    58  Cache:8GB
    59  TargetFileSize:256M
    60  L0CompactTrigger:8
    61  L0StopWritesTrigger:24
    62  ```
    63  
    64  - bitalosdb
    65  
    66  ```
    67  Memtable:256MB
    68  WAL:enable
    69  Cache:disable
    70  ```
    71  
    72  ### Result
    73  
    74  - QPS ([Horizontal](./docs/benchmark-qps.png))
    75  
    76  ![benchmark](./docs/benchmark-qps-vertical.png)
    77  
    78  ## Document
    79  
    80  Technical architecture and documentation, refer to the official website: [bitalos.zuoyebang.com](https://bitalos.zuoyebang.com)