Skip to content

Commit 5c98c01

Browse files
Mixficsolwuxianrong
andauthored
fix logo
Co-authored-by: wuxianrong <[email protected]>
1 parent a3c1666 commit 5c98c01

File tree

2 files changed

+50
-63
lines changed

2 files changed

+50
-63
lines changed

README.md

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<img src="https://s1.ax1x.com/2020/05/08/YnbjQf.png" alt="YnbjQf.png" width="300" />
1+
![](docs/images/pikiwidb-logo.png)
22

33
[![Build Status](https://travis-ci.org/Qihoo360/pika.svg?branch=master)](https://travis-ci.org/Qihoo360/pika) ![Downloads](https://img.shields.io/github/downloads/Qihoo360/pika/total)
44

@@ -8,23 +8,23 @@
88

99
## Introduction[中文](https://github.com/OpenAtomFoundation/pika/blob/unstable/README_CN.md)
1010

11-
Pika is a high-performance, large-capacity, multi-tenant, data-persistent elastic KV data storage system using RocksDB as the storage engine. It is fully compatible with the Redis protocol and supports its commonly used data structures, such as string/hash/list/zset/set/geo/hyperloglog/pubsub/bitmap/stream, etc. [Redis Interface](https://github.com/OpenAtomFoundation/pika/wiki/pika-%E6%94%AF%E6%8C%81%E7%9A%84redis%E6%8E%A5%E5%8F%A3%E5%8F%8A%E5%85%BC%E5%AE%B9%E6%83%85%E5%86%B5).
11+
PikiwiDB is a high-performance, large-capacity, multi-tenant, data-persistent elastic KV data storage system using RocksDB as the storage engine. It is fully compatible with the Redis protocol and supports its commonly used data structures, such as string/hash/list/zset/set/geo/hyperloglog/pubsub/bitmap/stream, etc. [Redis Interface](https://github.com/OpenAtomFoundation/pika/wiki/pika-%E6%94%AF%E6%8C%81%E7%9A%84redis%E6%8E%A5%E5%8F%A3%E5%8F%8A%E5%85%BC%E5%AE%B9%E6%83%85%E5%86%B5).
1212

13-
When Redis's in-memory usage exceeds 16GiB, it faces problems such as limited memory capacity, single-threaded blocking, long startup recovery time, high memory hardware costs, easily filled buffers, and high switching costs when one master and multiple replicas fail. The emergence of Pika is not to replace Redis but to complement it. Pika strives to completely comply with the Redis protocol, inherit Redis's convenient operation and maintenance design, and solve the bottleneck problem of Redis running out of memory capacity once the data volume becomes huge by using persistent storage. Additionally, Pika can support master-slave mode using the slaveof command, and it also supports full and incremental data synchronization.
13+
When Redis's in-memory usage exceeds 16GiB, it faces problems such as limited memory capacity, single-threaded blocking, long startup recovery time, high memory hardware costs, easily filled buffers, and high switching costs when one master and multiple replicas fail. The emergence of PikiwiDB is not to replace Redis but to complement it. PikiwiDB strives to completely comply with the Redis protocol, inherit Redis's convenient operation and maintenance design, and solve the bottleneck problem of Redis running out of memory capacity once the data volume becomes huge by using persistent storage. Additionally, PikiwiDB can support master-slave mode using the slaveof command, and it also supports full and incremental data synchronization.
1414

15-
Pika can be deployed in a single-machine master-slave mode (slaveof) or in a [Codis](https://github.com/OpenAtomFoundation/pika/tree/unstable/codis) cluster mode, allowing for simple scaling and shrinking. Migration from Redis to Pika can be smoothly executed by [tools](https://github.com/OpenAtomFoundation/pika/tree/unstable/tools).
15+
PikiwiDB can be deployed in a single-machine master-slave mode (slaveof) or in a [Codis](https://github.com/OpenAtomFoundation/pika/tree/unstable/codis) cluster mode, allowing for simple scaling and shrinking. Migration from Redis to PikiwiDB can be smoothly executed by [tools](https://github.com/OpenAtomFoundation/pika/tree/unstable/tools).
1616

17-
## Pika Features
17+
## PikiwiDB Features
1818

1919
* **Protocol Compatibility**: Fully compatible with the Redis protocol, emphasizing high performance, large capacity, low cost, and scalability.
2020
* **Data Structures**: Supports Redis's common data structures, including String, Hash, List, Zset, Set, Geo, Hyperloglog, Pubsub, Bitmap, Stream, ACL, etc.
2121
* **Cold and Hot Data**: Caches hot data and persistently stores the full data in RocksDB, implementing a hierarchical storage of cold and hot data.
22-
* **High Capacity**: Compared to Redis's in-memory storage, Pika supports data volumes in the hundreds of gigabytes, significantly reducing server resource consumption and enhancing data reliability.
22+
* **High Capacity**: Compared to Redis's in-memory storage, PikiwiDB supports data volumes in the hundreds of gigabytes, significantly reducing server resource consumption and enhancing data reliability.
2323
* **Deployment Modes**: Supports single-machine master-slave mode (slaveof) and Codis cluster mode, making scaling and shrinking simple.
24-
* **Easy Migration**: Smooth migration from Redis to Pika without modifying code.
24+
* **Easy Migration**: Smooth migration from Redis to PikiwiDB without modifying code.
2525
* **Convenient Operation and Maintenance**: Comprehensive operation and maintenance command documentation.
2626

27-
## Pika Storage Engine Architecture
27+
## PikiwiDB Storage Engine Architecture
2828

2929
* Supports multiple platforms: CentOS, Ubuntu, macOS, Rocky Linux
3030
* Multi-threaded model
@@ -40,17 +40,17 @@ Pika can be deployed in a single-machine master-slave mode (slaveof) or in a [Co
4040
* Each data structure uses a separate RocksDB instance
4141
* Master-slave adopts binlog asynchronous replication
4242

43-
![Pika-Master-Slave](docs/images/pika-master-slave.png)
43+
![PikiwiDB-Master-Slave](docs/images/pika-master-slave.png)
4444

4545
### 2. Distributed Cluster Mode
4646

4747
* Adopts Codis architecture, supports multiple groups
4848
* Each group forms a master-slave set
4949
* Elastic scaling based on groups
5050

51-
![Pika-Cluster](docs/images/pika-distributed-cluster.png)
51+
![PikiwiDB-Cluster](docs/images/pika-distributed-cluster.png)
5252

53-
## Pika User Showcase
53+
## PikiwiDB User Showcase
5454

5555
<table>
5656
<tr>
@@ -85,25 +85,25 @@ Pika can be deployed in a single-machine master-slave mode (slaveof) or in a [Co
8585
</tr>
8686
</table>
8787

88-
Pika has been widely adopted by various companies for internal deployments, demonstrating its scalability and reliability. Some notable usage instances include:
88+
PikiwiDB has been widely adopted by various companies for internal deployments, demonstrating its scalability and reliability. Some notable usage instances include:
8989

9090
* **360 Company**: Internal deployment with a scale of 10,000+ instances, each having a data volume of 1.8TB.
9191
* **Weibo**: Internal deployment with 10,000+ instances.
9292
* **Ximalaya(Xcache)**: 6,000+ instances with a massive data volume exceeding 120TB.
9393
* **Getui (个推) Company**: Internal deployment involving 300+ instances, with a cumulative data volume surpassing 30TB.
9494

95-
Additionally, Pika is utilized by companies such as Xunlei, Xiaomi, Zhihu, New Oriental Education & Technology Group (好未来), Kuaishou, Sohu, Meituan, Maimai, and more. For a comprehensive list of users, you can refer to the official list provided by the Pika project.
95+
Additionally, PikiwiDB is utilized by companies such as Xunlei, Xiaomi, Zhihu, New Oriental Education & Technology Group (好未来), Kuaishou, Sohu, Meituan, Maimai, and more. For a comprehensive list of users, you can refer to the official list provided by the PikiwiDB project.
9696

97-
These deployments across a diverse range of companies and industries underscore Pika's adaptability and effectiveness in handling large-scale, high-volume data storage requirements.
97+
These deployments across a diverse range of companies and industries underscore PikiwiDB's adaptability and effectiveness in handling large-scale, high-volume data storage requirements.
9898

9999
[More](docs/USERS.md)
100100

101101

102-
## Getting Started with Pika
102+
## Getting Started with PikiwiDB
103103

104104
### 1. Binary Package Installation
105105

106-
Users can directly download the latest binary version package from [releases](https://github.com/Qihoo360/pika/releases).
106+
Users can directly download the latest binary version package from [releases](https://github.com/Qihoo360/pikiwidb/releases).
107107

108108
### 2. Compilation from Source
109109

@@ -126,7 +126,7 @@ Users can directly download the latest binary version package from [releases](ht
126126
* 2.3.1. Get the source code
127127

128128
```bash
129-
git clone https://github.com/OpenAtomFoundation/pika.git
129+
git clone https://github.com/OpenAtomFoundation/pikiwidb.git
130130
```
131131

132132
* 2.3.2. Switch to the latest release version
@@ -154,7 +154,7 @@ Users can directly download the latest binary version package from [releases](ht
154154
155155
> Note: The compiled files will be saved in the output directory.
156156
157-
Pika is compiled by default in release mode, which does not support debugging. If debugging is needed, compile in debug mode.
157+
PikiwiDB is compiled by default in release mode, which does not support debugging. If debugging is needed, compile in debug mode.
158158
159159
```bash
160160
rm -rf output/
@@ -175,11 +175,11 @@ Users can directly download the latest binary version package from [releases](ht
175175
176176
* 2.3.4. (Supplementary) Manual compilation based on Docker images
177177
* Centos7
178-
[Reference link](https://github.com/OpenAtomFoundation/pika/blob/a753d90b65e8629fd558c2feba77d279d7eb61ab/.github/workflows/pika.yml#L93)
178+
[Reference link](https://github.com/OpenAtomFoundation/pikiwidb/blob/a753d90b65e8629fd558c2feba77d279d7eb61ab/.github/workflows/pika.yml#L93)
179179
```bash
180180
#1.Start a Centos container locally
181181
182-
sudo docker run -v /Youer/Path/pika:/pika --privileged=true -it centos:centos7
182+
sudo docker run -v /Youer/Path/pikiwidb:/pikiwidb --privileged=true -it centos:centos7
183183
184184
#2.Install dependent environment
185185
# Starting a new container requires installation
@@ -192,7 +192,7 @@ Users can directly download the latest binary version package from [releases](ht
192192
193193
export PATH=/opt/rh/devtoolset-10/root/usr/bin/:$PATH
194194
195-
cd pika
195+
cd pikiwidb
196196
#4.Start compilation
197197
# Choose DUSE-PIKA-TOOLS ON or OFF based on whether you need to recompile the tool
198198
@@ -205,7 +205,7 @@ Users can directly download the latest binary version package from [releases](ht
205205
```bash
206206
#1.Start a Ubuntu container locally
207207
208-
sudo docker run -v /Youer/Path/pika:/pika --privileged=true -it ubuntu:latest
208+
sudo docker run -v /Youer/Path/pikiwidb:/pikiwidb --privileged=true -it ubuntu:latest
209209
210210
/bin/bash
211211
@@ -222,7 +222,7 @@ Users can directly download the latest binary version package from [releases](ht
222222
cmake --build debug --config Debug -j8
223223
```
224224
225-
* #### 2.4 Start Pika
225+
* #### 2.4 Start PikiwiDB
226226
227227
```bash
228228
./output/pika -c ./conf/pika.conf
@@ -244,9 +244,9 @@ Users can directly download the latest binary version package from [releases](ht
244244
rm -rf output # regenerate cmake
245245
```
246246
247-
* #### 2.6 Pika Development Debugging
247+
* #### 2.6 PikiwiDB Development Debugging
248248
249-
[Setting up Pika Development Environment with CLion](./docs/ops/SetUpDevEnvironment.md)
249+
[Setting up PikiwiDB Development Environment with CLion](./docs/ops/SetUpDevEnvironment.md)
250250
251251
### 3. Containerization
252252
@@ -316,7 +316,7 @@ docker-compose.yaml
316316

317317
> Note: The test results were obtained under specific conditions and scenarios, and may not represent the performance in all environments and scenarios. They are for reference only.
318318

319-
__We recommend that you conduct detailed testing of Pika in your own environment based on the usage scenario to assess whether Pika meets your requirements.__
319+
__We recommend that you conduct detailed testing of PikiwiDB in your own environment based on the usage scenario to assess whether PikiwiDB meets your requirements.__
320320

321321
### 1. Test environment
322322

@@ -326,7 +326,7 @@ __We recommend that you conduct detailed testing of Pika in your own environment
326326
* Disk: 3TB Flash
327327
* Network: 10GBase-T/Full * 2
328328
* Operating System: CentOS 6.6
329-
* Pika Version: 2.2.4
329+
* PikiwiDB Version: 2.2.4
330330

331331
### 2. Benchmarking Tool
332332

@@ -339,11 +339,11 @@ __We recommend that you conduct detailed testing of Pika in your own environment
339339

340340
* ##### Test Objective
341341

342-
Evaluate the upper limit of QPS for Pika under different worker thread counts.
342+
Evaluate the upper limit of QPS for PikiwiDB under different worker thread counts.
343343

344344
* ##### Test Conditions
345345

346-
* Pika Data Size: 800GB
346+
* PikiwiDB Data Size: 800GB
347347
* Value: 128 bytes
348348
* CPU not bound
349349

@@ -352,22 +352,22 @@ Evaluate the upper limit of QPS for Pika under different worker thread counts.
352352
<img src="https://deep011.github.io/public/images/pika_benchmark/pika_threads_test.png" height = "60%" width = "60%" alt="1"/>
353353

354354
> Note:
355-
> The x-axis represents Pika thread count, and the y-axis represents QPS with a value size of 128 bytes.
355+
> The x-axis represents PikiwiDB thread count, and the y-axis represents QPS with a value size of 128 bytes.
356356
> "set3/get7" indicates 30% set and 70% get operations.
357357

358358
* ##### Case One Conclusion
359359

360-
From the above graph, it can be observed that setting Pika's worker thread count to 20-24 is more cost-effective.
360+
From the above graph, it can be observed that setting PikiwiDB's worker thread count to 20-24 is more cost-effective.
361361
362362
#### 3.2 Case 2
363363
364364
* ##### Test Objective
365365
366-
Evaluate the RTT performance of Pika with the optimal worker thread count (20 threads).
366+
Evaluate the RTT performance of PikiwiDB with the optimal worker thread count (20 threads).
367367
368368
* ##### Test Conditions
369369
370-
* Pika Data Size: 800GB
370+
* PikiwiDB Data Size: 800GB
371371
* Value: 128 bytes
372372
373373
* ##### Test Results
@@ -458,11 +458,11 @@ Evaluate the upper limit of QPS for Pika under different worker thread counts.
458458
459459
* ##### Test Objective
460460
461-
Evaluate the maximum QPS for each command in Pika with the optimal worker thread count.
461+
Evaluate the maximum QPS for each command in PikiwiDB with the optimal worker thread count.
462462
463463
* ##### Test Conditions
464464
465-
* Pika Worker Thread Count: 20
465+
* PikiwiDB Worker Thread Count: 20
466466
* Number of Keys: 10,000
467467
* Number of Fields: 100 (excluding lists)
468468
* Value: 128 bytes
@@ -512,11 +512,11 @@ Evaluate the upper limit of QPS for Pika under different worker thread counts.
512512
513513
* ##### Test Objective
514514
515-
Compare the maximum QPS between Pika and Redis.
515+
Compare the maximum QPS between PikiwiDB and Redis.
516516
517517
* ##### Test Conditions
518518
519-
* Pika Worker Thread Count: 20
519+
* PikiwiDB Worker Thread Count: 20
520520
* Number of Keys: 10,000
521521
* Number of Fields: 100 (excluding lists)
522522
* Value: 128 bytes
@@ -532,16 +532,16 @@ Evaluate the upper limit of QPS for Pika under different worker thread counts.
532532
533533
### Metrics
534534
535-
1. Pika Server Info: system, ip, port, run_id, config file etc.
536-
2. Pika Data Info: db size, log size, memory usage etc.
537-
3. Pika Client Info: The number of connected clients.
538-
4. Pika Stats Info: status information of compact, slot, etc.
539-
5. Pika Network Info: Incoming and outgoing traffic and rate of client and master-slave replication.
540-
6. Pika CPU Info: cpu usage.
541-
7. Pika Replication Info: Status information of master-slave replication, binlog information.
542-
8. Pika Keyspace Info: key information of five data types.
543-
9. Pika Command Exec Count Info: command execution count.
544-
10. Pika Command Execution Time: Time-consuming command execution.
535+
1. PikiwiDB Server Info: system, ip, port, run_id, config file etc.
536+
2. PikiwiDB Data Info: db size, log size, memory usage etc.
537+
3. PikiwiDB Client Info: The number of connected clients.
538+
4. PikiwiDB Stats Info: status information of compact, slot, etc.
539+
5. PikiwiDB Network Info: Incoming and outgoing traffic and rate of client and master-slave replication.
540+
6. PikiwiDB CPU Info: cpu usage.
541+
7. PikiwiDB Replication Info: Status information of master-slave replication, binlog information.
542+
8. PikiwiDB Keyspace Info: key information of five data types.
543+
9. PikiwiDB Command Exec Count Info: command execution count.
544+
10. PikiwiDB Command Execution Time: Time-consuming command execution.
545545
11. RocksDB Metrics: RocksDB information of five data types, includes Memtable, Block Cache, Compaction, SST File, Blob File etc.
546546
547547
More details on [Metrics](tools/pika_exporter/README.md).
@@ -551,9 +551,9 @@ More details on [Metrics](tools/pika_exporter/README.md).
551551
* [wiki](https://github.com/OpenAtomFoundation/pika/wiki)
552552
553553
* release notes
554-
- [What's new in Pika v3.5.2](https://my.oschina.net/dubbogo/blog/10315913)
555-
- [What's new in Pika v3.5.1](https://my.oschina.net/dubbogo/blog/10114890)
556-
- [What's new in Pika v3.5.0](https://mp.weixin.qq.com/s/NNnmd0RtQ-vx9arW9YBcBA)
554+
- [What's new in PikiwiDB v3.5.2](https://my.oschina.net/dubbogo/blog/10315913)
555+
- [What's new in PikiwiDB v3.5.1](https://my.oschina.net/dubbogo/blog/10114890)
556+
- [What's new in PikiwiDB v3.5.0](https://mp.weixin.qq.com/s/NNnmd0RtQ-vx9arW9YBcBA)
557557

558558
## Contact Us
559559

src/pika.cc

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,6 @@ static void version() {
4242
std::cout << "redis_version: " << version << std::endl;
4343
}
4444

45-
static void PrintPikaLogo() {
46-
printf(" ............. .... ..... ..... ..... \n"
47-
" ################# #### ##### ##### ####### \n"
48-
" #### ##### #### ##### ##### ######### \n"
49-
" #### ##### #### ##### ##### #### ##### \n"
50-
" #### ##### #### ##### ##### #### ##### \n"
51-
" ################ #### ##### ##### #### ##### \n"
52-
" #### #### ##### ##### ################# \n"
53-
" #### #### ##### ###### ##### ##### \n"
54-
" #### #### ##### ###### ##### ##### \n");
55-
}
56-
5745
static void PikaConfInit(const std::string& path) {
5846
printf("path : %s\n", path.c_str());
5947
g_pika_conf = std::make_unique<PikaConf>(path);
@@ -63,7 +51,6 @@ static void PikaConfInit(const std::string& path) {
6351
version();
6452
printf("-----------Pika config list----------\n");
6553
g_pika_conf->DumpConf();
66-
PrintPikaLogo();
6754
printf("-----------Pika config end----------\n");
6855
}
6956

0 commit comments

Comments
 (0)