From c8f78fd0ce707336cd8fc1160488728695514bdf Mon Sep 17 00:00:00 2001 From: chenbt Date: Fri, 15 Nov 2024 22:32:12 +0800 Subject: [PATCH] doc: update README.md --- tools/pika_migrate/README.md | 148 +++++------- tools/pika_migrate/README_CN.md | 348 ----------------------------- tools/pika_migrate/USERS.md | 110 --------- tools/pika_migrate/img.png | Bin 0 -> 54270 bytes tools/pika_migrate/pika-migrate.md | 43 ---- 5 files changed, 55 insertions(+), 594 deletions(-) delete mode 100644 tools/pika_migrate/README_CN.md delete mode 100644 tools/pika_migrate/USERS.md create mode 100644 tools/pika_migrate/img.png delete mode 100644 tools/pika_migrate/pika-migrate.md diff --git a/tools/pika_migrate/README.md b/tools/pika_migrate/README.md index ccacd1beee..01afc5bcbb 100644 --- a/tools/pika_migrate/README.md +++ b/tools/pika_migrate/README.md @@ -1,114 +1,76 @@ -# Pika -[![Build Status](https://travis-ci.org/Qihoo360/pika.svg?branch=master)](https://travis-ci.org/Qihoo360/pika) -## Introduction[中文](https://github.com/Qihoo360/pika/blob/master/README_CN.md) +## 适用版本 -Pika is a persistent huge storage service , compatible with the vast majority of redis interfaces ([details](https://github.com/Qihoo360/pika/wiki/pika-支持的redis接口及兼容情况)), including string, hash, list, zset, set and management interfaces. With the huge amount of data stored, redis may suffer for a capacity bottleneck, and pika was born for solving it. Except huge storage capacity, pika also support master-slave mode by slaveof command, including full and partial synchronization. You can also use pika together with twemproxy or codis(*pika has supported data migration in codis,thanks [left2right](https://github.com/left2right) and [fancy-rabbit](https://github.com/fancy-rabbit)*) for distributed Redis solution +适用 PIKA 3.2.0及以上版本,单机模式且只使用了单 DB。若 PIKA 版本低于3.2.0,需将内核版本升级至 3.2.0。具体信息,请参见 升级 PIKA 内核版本至3.2.0。 +### 开发背景: +之前Pika项目官方提供的pika\_to\_redis工具仅支持离线将Pika的DB中的数据迁移到Pika、Redis, 且无法增量同步, 该工具实际上就是一个特殊的Pika, 只不过成为从库之后, 内部会将从主库获取到的数据转发给Redis,同时并支持增量同步, 实现热迁功能. +## 迁移原理 -## UserList +将 PIKA 中的数据在线迁移到 Redis,并支持全量和增量同步。使用 pika-migrate 工具,将工具虚拟为 PIKA 的从库,然后从主库获取到数据转发给 Redis,同时支持增量同步,实现在线热迁的功能。 +1. pika-migrate 通过 dbsync 请求获取主库全量 DB 数据,以及当前 DB 数据所对应的 binlog 点位。 +2. 获取到主库当前全量 DB 数据之后,扫描 DB,将 DB 中的数据打包转发给 Redis。 +3. 通过之前获取的 binlog 的点位向主库进行增量同步, 在增量同步的过程中,将从主库获取到的 binlog 重组成 Redis 命令,转发给 Redis。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Qihoo360gameWeiboGarena
ApusFfanMeituanXES
HXXLGWDDYD
YMXMXLYM
MMVIPLKKS
-[More](https://github.com/Qihoo360/pika/blob/master/USERS.md) +## 注意事项 -## Feature +PIKA 支持不同数据结构采用同名 Key,但是 Redis 不⽀持,所以在有同 Key 数据的场景下,以第⼀个迁移到 Redis 数据结构为准,其他同名 Key 的数据结构会丢失。 +该工具只支持热迁移单机模式下,并且只采⽤单 DB 版本的 PIKA,如果是集群模式,或者是多 DB 场景,⼯具会报错并且退出。 +为了避免由于主库 binlog 被清理导致该⼯具触发多次全量同步向 Redis 写入脏数据,工具自身做了保护,在第⼆次触发全量同步时会报错退出。 -* huge storage capacity -* compatible with redis interface, you can migrate to pika easily -* support master-slave mode (slaveof) -* various [management](https://github.com/Qihoo360/pika/wiki/pika的一些管理命令方式说明) interfaces - -## For developer - -### Releases -The User can download the binary release from [releases](https://github.com/Qihoo360/pika/releases) or compile the source release. - -### Dependencies - -* snappy - a library for fast data compression -* glog - google log library - -Upgrade your gcc to version at least 4.8 to get C++11 support. - -### Supported platforms - -* linux - Centos 5&6 - -* linux - Ubuntu - -If it comes to some missing libs, install them according to the prompts and retry it. - -### Compile - -Upgrade your gcc to version at least 4.8 to get C++11 support. - -Get the source code - -``` -git clone https://github.com/Qihoo360/pika.git -``` - - -Then compile pika, all submodules will be updated automatically. - -``` +## 编译步骤 +```shell +# 若third目录中子仓库为空,需要进入工具根目录更新submodule +git submodule update --init --recursive +# 编译 make ``` -## Usage +### 编译备注 +1.如果rocksdb编译失败,请先按照[此处](https://github.com/facebook/rocksdb/blob/004237e62790320d8e630456cbeb6f4a1f3579c2/INSTALL.md) 的步骤准备环境 +2.若类似为: +```shell +error: implicitly-declared 'constexpr rocksdb::FileDescriptor::FileDescriptor(const rocksdb::FileDescriptor&)' is deprecated [-Werror=deprecated-copy] ``` -./output/bin/pika -c ./conf/pika.conf -``` - -## Performance +可以修改tools/pika_migrate/third/rocksdb目录下的makefile:
WARNING_FLAGS = -Wno-missing-field-initializers +-Wno-unused-parameter -More details on [Performance](https://github.com/Qihoo360/pika/wiki/3.2.x-Performance). +## 迁移步骤 +1. 在 PIKA 主库上执行如下命令,让 PIKA 主库保留10000个 binlog 文件。 -## Documents - -1. [Wiki](https://github.com/Qihoo360/pika/wiki) - -## Contact Us +```shell +config set expire-logs-nums 10000 +``` -Mail: g-infra@360.cn +```text +说明: +pika-port 将全量数据写入到 Redis 这段时间可能耗时很长,而导致主库原先 binlog 点位被清理。需要在 PIKA 主库上保留10000个 binlog ⽂件,确保后续该⼯具请求增量同步的时候,对应的 binlog 文件还存在。 +binlog 文件占用磁盘空间,可以根据实际情况确定保留 binlog 的数量。 +``` -QQ group: 294254078 +2. 修改迁移工具的配置文件 pika.conf 中的如下参数。 + ![img.png](img.png) + + target-redis-host:指定 Redis 的 IP 地址。 + target-redis-port:指定 Redis 的端口号。 + target-redis-pwd:指定 Redis 默认账号的密码。 + sync-batch-num:指定 pika-migrate 接收到主库的 sync-batch-num 个数据⼀起打包发送给 Redis,提升转发效率。 + redis-sender-num:指定 redis-sender-num 个线程用于转发数据包。转发命令通过 Key 的哈希值将数据分配到不同的线程发送,无需担心多线程发送导致数据错乱的问题。 +3. 在工具包的路径下执行如下命令,启动 pika-migrate 工具,并查看回显信息。 +```shell +pika -c pika.conf +``` -For more information about Pika, Atlas and some other technology please pay attention to our Hulk platform official account +4. 执行如下命令,将迁移工具伪装成 Slave,向主库请求同步,并观察是否有报错信息。 +```shell +slaveof ip port force +``` -2 +5. 确认主从关系建立成功之后,pika-migrate 同时向目标 Redis 转发数据。执行如下命令,查看主从同步延迟。可在主库写入⼀个特殊的 Key,然后在 Redis 侧查看是否可立即获取到该 Key,判断数据同步完毕。 +```shell +info Replication +``` diff --git a/tools/pika_migrate/README_CN.md b/tools/pika_migrate/README_CN.md deleted file mode 100644 index 211a482c5a..0000000000 --- a/tools/pika_migrate/README_CN.md +++ /dev/null @@ -1,348 +0,0 @@ -# Pika - -## 简介 [English](https://github.com/Qihoo360/pika/blob/master/README.md) -Pika是一个可持久化的大容量redis存储服务,兼容string、hash、list、zset、set的绝大部分接口([兼容详情](https://github.com/Qihoo360/pika/wiki/pika-支持的redis接口及兼容情况)),解决redis由于存储数据量巨大而导致内存不够用的容量瓶颈,并且可以像redis一样,通过slaveof命令进行主从备份,支持全同步和部分同步,pika还可以用在twemproxy或者codis中来实现静态数据分片(pika已经可以支持codis的动态迁移slot功能,目前在合并到master分支,欢迎使用,感谢作者[left2right](https://github.com/left2right)和[fancy-rabbit](https://github.com/fancy-rabbit)提交的pr) - -## Pika用户 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Qihoo360gameWeiboGarena
ApusFfanMeituanXES
HXXLGWDDYD
YMXMXLYM
MMVIPLKKS
- - -[更多](https://github.com/Qihoo360/pika/blob/master/USERS.md) - -## 特点 -* 容量大,支持百G数据量的存储 -* 兼容redis,不用修改代码即可平滑从redis迁移到pika -* 支持主从(slaveof) -* 完善的[运维](https://github.com/Qihoo360/pika/wiki/pika的一些管理命令方式说明)命令 - - -## 使用 - -### 二进制包使用 - -用户可以直接从[releases](https://github.com/Qihoo360/pika/releases)下载最新的二进制版本包直接使用. - -### 编译使用 - -1.在编译机上安装snappy,glog,CentOS系统可以用yum安装,Ubuntu可以用apt-get安装。如是CentOS系统,执行如下命令: - -``` -    yum install snappy-devel glog-devel -``` - -2.安装g++(若没有安装), 在CentOS上执行如下命令: - -``` - yum install gcc-c++ -``` - -3.把gcc版本临时切换到4.8(若已是,则忽略), 在CentOs上执行如下命令: - -``` - a. sudo wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo - b. sudo yum install -y devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ - c. scl enable devtoolset-2 bash -``` -4.获取源代码 - -``` - git clone https://github.com/Qihoo360/pika.git && cd pika -``` -5.切换到最新release版本 - -``` - a. 执行 git tag 查看最新的release tag,(如 v2.2.5) - b. 执行 git checkout TAG切换到最新版本,(如 git checkout v2.2.5) -``` - -6.编译 - -``` - make -``` - -若编译过程中,提示有依赖的库没有安装,则有提示安装后再重新编译 - -**注:我们推荐使用TCMalloc来进行内存管理** - -## 使用 -``` - ./output/bin/pika -c ./conf/pika.conf -``` - -## 清空编译 - -``` - 如果需要清空编译内容,视不同情况使用一下两种方法其一: - - 1. 执行make clean来清空pika的编译内容 - 2. 执行make distclean来清空pika及所有依赖的编译内容(一般用于彻底重新编译) -``` - -## 性能 (感谢[deep011](https://github.com/deep011)提供性能测试结果) -### 注!!! -本测试结果是在特定环境特定场景下得出的,不能够代表所有环境及场景下的表现,__仅供参考__。 - -__推荐大家在使用pika前在自己的环境根据自己的使用场景详细测试以评估pika是否满足要求__ - -### 测试环境 - -**CPU型号**:Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz - -**CPU线程数**:56 - -**MEMORY**:256G - -**DISK**:3T flash - -**NETWORK**:10GBase-T/Full * 2 - -**OS**:centos 6.6 - -**Pika版本**:2.2.4 - -### 压测工具 - -[**vire-benchmark**](https://deep011.github.io/vire-benchmark) - -### 测试一 - -#### 测试目的 - -测试在pika不同worker线程数量下,其QPS上限。 - -#### 测试条件 - -pika数据容量:800G - -value:128字节 - -CPU未绑定 - -#### 测试结果 - -说明:横轴Pika线程数,纵轴QPS,value为128字节。set3/get7代表30%的set和70%的get。 - -1 - -#### 结论 - -从以上测试图可以看出,pika的worker线程数设置为20-24比较划算。 - -### 测试二 - -#### 测试目的 - -测试在最佳worker线程数(20线程)下,pika的rtt表现。 - -#### 测试条件 - -**pika数据容量**:800G - -**value**:128字节 - -#### 测试结果 - -```c -====== GET ====== - 10000000 requests completed in 23.10 seconds - 200 parallel clients - 3 bytes payload - keep alive: 1 -99.89% <= 1 milliseconds -100.00% <= 2 milliseconds -100.00% <= 3 milliseconds -100.00% <= 5 milliseconds -100.00% <= 6 milliseconds -100.00% <= 7 milliseconds -100.00% <= 7 milliseconds -432862.97 requests per second -``` - -```c -====== SET ====== - 10000000 requests completed in 36.15 seconds - 200 parallel clients - 3 bytes payload - keep alive: 1 -91.97% <= 1 milliseconds -99.98% <= 2 milliseconds -99.98% <= 3 milliseconds -99.98% <= 4 milliseconds -99.98% <= 5 milliseconds -99.98% <= 6 milliseconds -99.98% <= 7 milliseconds -99.98% <= 9 milliseconds -99.98% <= 10 milliseconds -99.98% <= 11 milliseconds -99.98% <= 12 milliseconds -99.98% <= 13 milliseconds -99.98% <= 16 milliseconds -99.98% <= 18 milliseconds -99.99% <= 19 milliseconds -99.99% <= 23 milliseconds -99.99% <= 24 milliseconds -99.99% <= 25 milliseconds -99.99% <= 27 milliseconds -99.99% <= 28 milliseconds -99.99% <= 34 milliseconds -99.99% <= 37 milliseconds -99.99% <= 39 milliseconds -99.99% <= 40 milliseconds -99.99% <= 46 milliseconds -99.99% <= 48 milliseconds -99.99% <= 49 milliseconds -99.99% <= 50 milliseconds -99.99% <= 51 milliseconds -99.99% <= 52 milliseconds -99.99% <= 61 milliseconds -99.99% <= 63 milliseconds -99.99% <= 72 milliseconds -99.99% <= 73 milliseconds -99.99% <= 74 milliseconds -99.99% <= 76 milliseconds -99.99% <= 83 milliseconds -99.99% <= 84 milliseconds -99.99% <= 88 milliseconds -99.99% <= 89 milliseconds -99.99% <= 133 milliseconds -99.99% <= 134 milliseconds -99.99% <= 146 milliseconds -99.99% <= 147 milliseconds -100.00% <= 203 milliseconds -100.00% <= 204 milliseconds -100.00% <= 208 milliseconds -100.00% <= 217 milliseconds -100.00% <= 218 milliseconds -100.00% <= 219 milliseconds -100.00% <= 220 milliseconds -100.00% <= 229 milliseconds -100.00% <= 229 milliseconds -276617.50 requests per second -``` - -#### 结论 - -get/set 响应时间 99.9%都在2ms以内。 - -### 测试三 - -#### 测试目的 - -在pika最佳的worker线程数下,查看各命令的极限QPS。 - -#### 测试条件 - -**pika的worker线程数**:20 - -**key数量**:10000 - -**field数量**:100(list除外) - -**value**:128字节 - -**命令执行次数**:1000万(lrange除外) - -#### 测试结果 - -```c -PING_INLINE: 548606.50 requests per second -PING_BULK: 544573.31 requests per second -SET: 231830.31 requests per second -GET: 512163.91 requests per second -INCR: 230861.56 requests per second -MSET (10 keys): 94991.12 requests per second -LPUSH: 196093.81 requests per second -RPUSH: 195186.69 requests per second -LPOP: 131156.14 requests per second -RPOP: 152292.77 requests per second -LPUSH (needed to benchmark LRANGE): 196734.20 requests per second -LRANGE_10 (first 10 elements): 334448.16 requests per second -LRANGE_100 (first 100 elements): 50705.12 requests per second -LRANGE_300 (first 300 elements): 16745.16 requests per second -LRANGE_450 (first 450 elements): 6787.94 requests per second -LRANGE_600 (first 600 elements): 3170.38 requests per second -SADD: 160885.52 requests per second -SPOP: 128920.80 requests per second -HSET: 180209.41 requests per second -HINCRBY: 153364.81 requests per second -HINCRBYFLOAT: 141095.47 requests per second -HGET: 506791.00 requests per second -HMSET (10 fields): 27777.31 requests per second -HMGET (10 fields): 38998.52 requests per second -HGETALL: 109059.58 requests per second -ZADD: 120583.62 requests per second -ZREM: 161689.33 requests per second -PFADD: 6153.47 requests per second -PFCOUNT: 28312.57 requests per second -PFADD (needed to benchmark PFMERGE): 6166.37 requests per second -PFMERGE: 6007.09 requests per second -``` - -#### 结论 - -整体表现很不错,个别命令表现较弱(LRANGE,PFADD,PFMERGE)。 - -### 测试四 - -#### 测试目的 - -Pika与Redis的极限QPS对比。 - -#### 测试条件 - -**pika的worker线程数**:20 - -**key数量**:10000 - -**field数量**:100(list除外) - -**value**:128字节 - -**命令执行次数**:1000万(lrange除外) - -**Redis版本**:3.2.0 - -#### 测试结果 - -1 - -## 文档 -1. [Wiki] (https://github.com/Qihoo360/pika/wiki) - -## 联系方式 -邮箱:g-infra@360.cn - -QQ群:294254078 diff --git a/tools/pika_migrate/USERS.md b/tools/pika_migrate/USERS.md deleted file mode 100644 index fff9505cb4..0000000000 --- a/tools/pika_migrate/USERS.md +++ /dev/null @@ -1,110 +0,0 @@ -## 1. 奇虎360 -Qihoo360 - -在360, pika已替换几乎全部的Redis大容量实例和所有的SSDB,目前已有1000+实例,每天访问量900亿,存储容量18T,折合内存大致54T - -## 2. 新浪微博 -Weibo - -使用场景: -1. 上文件存储集群,有文件标识id. -2. 搜索会有一些用户属性特征pika作为存储物料库之一 -3. 后台发垃圾过滤, 作为反spam - -已上线 - -## 3. Garena -Garena - -使用场景: -1. 用在Timeline功能,读写比4:1,数据量100G多, QPS 几万 -2. 电商平台推荐功能 - -## 4. Apus -Apus -已上线 - -## 5. 飞凡电商 -Ffan - -作为线上Redis海量数据的离线备份 - -## 6. 美团网 - -Meituan - -1. 大数据,推送业务(已上线) -2. 使用Pika 的引擎nemo 为内部的nosql 提供多数据结构接口(测试中, 准备上线) - -## 7. 学而思网校 -XES - -数据持久化存储(已上线) - -## 8. 环信 -HX -用于存储推送中的离线数据消息 - -## 9. 迅雷 -XL - -用户存储个性化推荐数据, 目前使用15台机器 - -已上线 - -## 10. 高伟达 -GWD - -记录移动终端设备访问记录,标记活跃状态 - -已上线 - -## 11. 第一弹 -DYD - -已上线 - -## 12. 亿玛科技 -YM - -已上线 - -## 13. 小米 -XM - -已上线 - -## 14. 58同城 -XL - -已上线 - -## 15. 360游戏 -XL - -360游戏已全面完成SSDB到pika的替换 - -## 15. 猎豹移动 -LB - -用于大量页面数据、离线用户计算数据的存放 - -## 16. 铭师堂教育 -MST - -Venus平台已经上线pika+QConf,其他系统在陆续上线中 - -## 17. 脉脉 -MM - -已上线 - -## 18. 唯品会 -VIP - -已上线 - -## 19. 路况交通眼 -LK - -已上线,存储路况信息 diff --git a/tools/pika_migrate/img.png b/tools/pika_migrate/img.png new file mode 100644 index 0000000000000000000000000000000000000000..756bfa294820ba7f5aacc323e87041a14ad91338 GIT binary patch literal 54270 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%0D>4SkZCUt$HSA*g~EB=Zq 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 z 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