大容量 redis 存储方案 --Pika 陈宗志 360 基础架构组技术经理 SACC2017

Similar documents
附录八:验收监测表格式

21 贵 省 黔 东 南 贵 中 共 天 柱 县 委 党 奥 鹏 学 习 中 贵 省 黔 东 南 天 柱 县 凤 城 镇 环 城 中 共 天 柱 县 委 党 心 [23] 东 路 14 号 贵 省 黔 东 南 贵 省 榕 江 县 古 镇 古 中 路 附 一

更 没 有 高 深 的 思 想, 甚 至 说 不 出 一 点 儿 高 级 的 俏 皮 话 他 们 普 遍 认 为, 生 活 中 的 我 和 电 视 里 的 那 个 人 基 本 上 还 算 表 里 如 一, 但 相 比 之 下 少 了 很 多 趣 味 记 得 有 一 个 女 记 者 采 访 我, 半

此 外, 晚 上 可 以 在 海 滩 东 边 的 剧 场 看 印 象 海 南 岛 的 实 景 演 出 1 可 乘 兴 龙 观 光 巴 士 和 共 速 达 巴 士 游 1 2 路 抵 达, 途 经 白 龙 路 海 府 路 滨 海 大 道 ;2 可 乘 坐 路 公 交 车 到 达

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

KV-cache 1 KV-cache Fig.1 WorkflowofKV-cache 2.2 Key-value Key ; Key Mem-cache (FIFO) Value Value Key Mem-cache ( Value 256B 100 MB 20%

, 即 使 是 在 昏 暗 的 灯 光 下, 她 仍 然 可 以 那 么 耀 眼 我 没 有 地 方 去, 你 会 带 着 我 么 杜 晗 像 是 在 嘲 笑 一 般, 嘴 角 的 一 抹 冷 笑 有 着 不 适 合 这 个 年 龄 的 冷 酷 和 无 情, 看 着 江 华 的 眼 神 毫 无 温

Microsoft Word - 2B802內文.doc

東區校園中法治教育種子師資教學研習營

Microsoft Word - 1HF12序.doc

Microsoft Word - 讀報看科普─人體篇_橫_.doc

鍟嗗搧瑙傚療鈥㈤挗鏉

席 远 杨 一 人 了, 正 当 她 开 枪 时 却 发 现 子 弹 没 了 该 死, 只 能 赤 手 空 拳 了 洛 水 云 与 席 远 杨 交 起 手 来, 洛 水 云 出 手 招 招 致 命 想 那 席 远 杨 也 不 是 泛 泛 之 辈, 很 快 掌 握 了 洛 水 云 出 招 路 数 看

閱 讀 素 材 V.S 分 組 方 式 的 差 異 化 教 學 工 具 表 班 級 :( ) 閱 讀 素 材 V.S 分 組 方 式 獨 立 閱 讀 夥 伴 閱 讀 ( 同 質 性 ) 夥 伴 閱 讀 ( 異 質 性 ) 友 善 陪 伴 虛 心 受 教 國 語 日 報 新 聞 生 活 文 藝 兒 童

PowerPoint Presentation

案例分享产品文档

untitled

untitled

秘密

E11701


第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

1.5招募说明书(草案)

欢 听 课 件, 课 件 可 以 听, 我 认 为 最 多 听 两 三 遍, 听 多 也 无 用, 帮 助 不 了 记 忆 的 在 看 图 集 和 条 文 解 释 完 成 后 接 着 看 综 合 能 力 的 第 二 篇, 然 后 接 着 看 案 例 书 的 建 筑 防 火 案 例, 这 样 结 合

PowerPoint 演示文稿

COP中文范本

冶金企业安全生产监督管理规定

<4D F736F F D20BAECB1A6C0F6A3BAB7C7B9ABBFAAB7A2D0D0B9C9C6B1C4BCBCAFD7CABDF0CAB9D3C3B5C4BFC9D0D0D0D4B1A8B8E62E646F63>


文档 1

01

个人简介:

最 佳 做 法 : 在 需 要 时 或 需 要 前 从 CDN 下 载 内 容, 并 使 它 们 与 Flash 代 码 和 文 件 分 离 存 盘 率 vs 响 应 速 度 当 用 户 玩 游 戏 时, 客 户 端 可 以 把 每 一 个 变 化 实 时 写 到 后 端 Web 服 务 器, 也

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

岳西职教中心

安 联 财 产 保 险 ( 中 国 ) 有 限 公 司 旅 行 人 身 意 外 伤 害 保 险 条 款 (2016 版 ) 1. 合 同 构 成 本 保 险 合 同 由 保 险 条 款 投 保 单 保 险 单 保 险 凭 证 以 及 批 单 等 组 成 凡 涉 及 本 保 险 合 同 的 约 定,

19 互 联 网 络 是 一 种 功 能 最 强 大 的 营 销 工 具, 它 所 具 备 的 一 对 一 营 销 能 力, 正 是 符 合 定 制 营 销 与 直 复 营 销 的 未 来 趋 势 20 数 字 合 同 是 通 过 计 算 机 网 络 系 统 订 立 的, 以 数 据 电 文 的 方

<4D F736F F D DB6ABB7BDBEABB9A4D0C2B9C9B6A8BCDBB1A8B8E6A3BAD6D0B8DFB6CBCDDFC0E3D6BDD3A1CBA2B3C9CCD7C9E8B1B8CFB8B7D6CAD0B3A1B5C4C1FACDB7C6F3D2B52D E646F63>

2005 3

的 最 基 本 原 則 四 心 得 及 感 想 ( 含 個 人 心 得 與 感 想 建 議 等 ) 在 電 商 部 實 習 的 過 程 中, 從 實 習 第 四 天 的 月 會 報 告 無 法 進 入 大 家 簡 述 的 專 案 狀 況, 到 一 個 月 後 自 己 也 能 參 與 案 件 討 論,

目次 

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

IT Data-intensive application,iscsi Middl


温州市政府分散采购

用户手册.cdr

中邮人寿保险股份有限公司

untitled

2. 这 个 男 人 冷 冰 冰 他 是 她 见 过 的 最 好 看 的 男 人, 没 有 之 一 他 的 眼 瞳 是 有 些 晶 莹 的 墨 黑 色, 却 带 着 一 种 捉 摸 不 透 的 深 意 他 高 挺 鼻 梁 下 的 嘴 唇 边 总 是 带 着 一 抹 弧 度, 可 却 让 人 觉 得

建设项目竣工环境保护

PowerPoint 簡報

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

FD-S2w OS X / macos / Windows Ver. 1.3x CS

公开招标文件

CLP-585/575/545/535/565GP

支付宝2011年 IT资产与费用预算

第 二 章 校 草 出 现 圣 迪 亚 学 院, 一 所 远 近 闻 名 的 贵 族 学 院 它 的 知 名 度 就 好 像 猪 的 知 名 度 一 样, 无 人 不 知 无 人 不 晓 是 所 有 人 都 向 往 的 学 校 圣 迪 亚 学 院 是 以 欧 式 建 筑 风 格 为 主 的 大 门

<443A5CCED2B5C4CEC4B5B55CB2BFC3C5B9A4D7F7A3A8C4EAB6C8A3A95C C3135A1A2BFC9B3D6D0F8B7A2D5B9B1A8B8E65CCCECBDF2CAD0BDF2C8D9CCECD3EEBEABC3DCBBFAD0B5D3D0CFDEB9ABCBBE C4EAB6C8C9E7BBE1D4F0C8CEB1A8B8E62E646F63>

1 第一章 14

Microsoft Word - 21??¡N??`?C?~??-1.doc, page Normalize ( Microsoft Word - 21ºÝ¤È¸`§C¦~¯Å-1.doc )

普 卡 : 賠 償 金 額 實 支 實 付 最 高 以 新 台 幣 柒 仟 元 整 為 限 ( 持 卡 人 及 家 屬 實 支 實 付 合 計 最 高 以 新 台 幣 壹 萬 肆 仟 元 整 為 限 ) 2. 行 李 延 誤 ( 六 ~ 二 十 四 小 時 ) 被 保 險 人 於 其 所 搭 乘 之

Intel® Core2™ i7 Processor

【结构化面试名师精品班2ATY15K002】讲义.docx

目 录 第 一 章 总 论 概 述 编 制 依 据 和 原 则 企 业 概 况 项 目 提 出 的 背 景 及 投 资 必 要 性 可 行 性 研 究 的 工 作 范 围 可 行 性 研 究

Microsoft Word - 134招标文件.doc

Microsoft Word - onlineHelpC.doc

IP Encoder 1 channel.book

目 錄 壹 學 校 現 況..1 一 學 校 現 有 資 源 1 二 學 校 發 展 方 向 及 執 行 重 點 特 色 三 本 ( 102 ) 年 度 發 展 重 點..20 貳 支 用 計 畫 與 學 校 整 體 發 展 規 劃 之 關 聯...31 一 資 本 門 支 用 項

先生別耍我

表1 前言

并行程序设计基础

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

1 o o o CPU o o o o o SQL Server 2005 o CPU o o o o o SQL Server o Microsoft SQL Server 2005

PowerPoint Presentation

目 录 如 何 阅 读 本 说 明 书! 感 谢 您 惠 购 先 锋 产 品 请 务 必 阅 读 本 册 子 和 本 机 附 带 的 使 用 说 明 书 ( 基 本 版 ) 它 们 都 包 含 使 用 本 产 品 之 前 必 须 充 分 了 解 的 重 要 信 息! 在 本 说 明 书 中, 产 品

Microsoft PowerPoint 台南一中-99高中宣導簡報

延 安 日 记

如 果 此 設 備 對 無 線 電 或 電 視 接 收 造 成 有 害 干 擾 ( 此 干 擾 可 由 開 關 設 備 來 做 確 認 ), 用 戶 可 嘗 試 用 以 下 一 種 或 多 種 方 法 來 消 除 這 個 干 擾 : 重 新 調 整 與 確 定 接 收 天 線 方 向 增 大 此 設

公报1a

P4Dual-915GL_BIOS_CN.p65


/7

( 总 第 1100 期 ) 浙 江 省 人 民 政 府 主 办 2015 年 12 月 4 日 出 版 省 政 府 文 件 浙 江 省 人 民 政 府 关 于 加 快 推 进 慈 善 事 业 发 展 的 实 施 意 见 ( 浙 政 发 号 ) (3) 省 政 府 办 公 厅 文 件

Microsoft Word - Functional_Notes_3.90_CN.doc

溝通協調與激勵領導

1.5招募说明书(草案)

目 录 学 校 概 况... 1 报 告 说 明... 2 第 一 章 毕 业 生 就 业 基 本 情 况... 3 一 毕 业 生 的 规 模 和 结 构... 3 ( 一 ) 毕 业 生 的 规 模... 3 ( 二 ) 毕 业 生 结 构... 3 二 就 业 率... 4 ( 一 ) 总 体

Oracle 4

全国主要流域重点断面水质自动监测周报

untitled

2

二 工 作 原 则 1 坚 持 复 试 的 科 学 性 采 用 综 合 性 多 元 化 的 考 察 方 式 和 方 法, 积 极 探 索 高 层 次 专 业 人 才 选 拔 规 律, 使 拔 尖 创 新 人 才 能 够 脱 颖 而 出 2 全 面 考 查, 有 所 侧 重 在 德 智 体 能 等 各

98支用計畫書-報部 修改.doc

Microsoft Word - AQSI doc

哈尔滨应用职业技术学院2012年教育教学质量报告

天 津 广 场 02 广 场 02 北 京 城 建 N 次 方 商 铺 北 京 城 建 世 华 龙 樾 朝 阳 海 淀 广 场 02 北 京 城 建 海 梓 府 亦 庄 待 定 广 场 02 北 京 城 建 红 木 林 大 兴 广 场 02 北 京 城 建 北 京 密 码 大 兴

摘 要 1. GSLB: 全 局 负 载 均 衡 2. SLB: 服 务 器 负 载 均 衡 四 层 交 换 LVS 七 层 交 换 Nginx 3. Heartbeat 实 现 HA 4. MySQL 数 据 库 集 群 5. 集 群 环 境 下 的 存 储 备 份 6. 集 群 的 监 控 及

关 于 使 用 说 明 书 本 书 说 明 本 软 件 的 安 装 方 法 和 各 个 设 备 的 设 置 方 法 本 书 使 用 Microsoft Windows 7 Professional 进 行 说 明 使 用 其 他 的 操 作 系 统 或 者 根 据 操 作 系 统 的 设 置 的 不

Transcription:

大容量 redis 存储方案 --Pika 陈宗志 360 基础架构组技术经理

简介 13 年入职 360 基础架构组 Bada Pika Zeppelin Mario, Pink, slash, floyd https://github.com/qihoo360

概要 存在问题 分析问题 解决问题 Pika vs redis

Introduction Pika 是 DBA 和基础架构团队一起设计开发的大容量 redis 的解决方案 完全兼容 redis 协议, 用户不需要修改任何代码 进行迁移

Pika User Redis 实例数量 :6000+ 个 日访问量 :5000+ 亿 Pika 数据数量 :1000+ 个 日访问量 :1000+ 亿 覆盖率 :80% 以上业务线 单份数据体积 :6.8T

Pika 定位 Pika 的出现并不是为了替代 Redis, 而是 Redis 的场景补充 Pika 力求在完全兼容 Redis 协议 继承 Redis 便 捷运维设计的前提下通过持久化存储的方式解决 Redis 在大容量场景下的问题

Redis 问题 恢复时间长 一主多从, 主从切换代价大 缓冲区写满问题 成本问题

Redis 问题 恢复时间长 50G redis 回复时间 70 分钟 同时开启 aof 和 rdb

Redis 问题 一主多从, 主从切换代价大 主库挂掉后升级从库, 所有的从库全部重传数据

Redis 问题 缓冲区写满问题 内存是昂贵资源, 缓冲区一般设置 2G 网络原因很容易将数据堵死, 那么就会发生大量数据重传

Redis 问题 内存太贵 线上使用的 redis 机器是 64G, 96G. 只使用 80% 的空间. 如果一个 redis 的实例是 50G, 那么基本一台机器只能运行一个 redis 实例. 特别的浪费资源

Redis 问题 90/GB VS 2.6/GB 30 倍的差距

问题分析 成本问题 可用性问题 同步问题 易用性问题

问题分析 尽可能兼容 redis 协议 使用基于磁盘的存储引擎 rocksdb 实现多数据接口接口 网络库 添加 binlog 模块

Pika 整体结构

网络模块 --Pink 基础架构团队开发网络编程库, 支持 pb, redis, pg, http 等协议. 抽象各种不同类型线程 DispatchThread WorkThread BGThread https://github.com/qihoo360/pink

网络模块 --Pink 稳定行, 在各个项目中使用 4 年多 易用性 高性能

网络模块 --Pink class MyPbConn : public pink::pbconn { Public: MyPbConn(int fd, std::string ip_port, pink::thread* self_thread_ptr = NULL) : pink::pbconn(fd, ip_port) { res_ = dynamic_cast<google::protobuf::message*>(&message_); } ~MyPbConn() {} int DealMessage() { message_.parsefromarray(rbuf_ + cur_pos_ - header_len_, header_len_); message_.set_name("hello " + message_.name()); uint32_t u =htonl( message_.bytesize()); memcpy(static_cast<void*>(wbuf_), static_cast<void*>(&u), COMMAND_HEADER_LENGTH); message_.serializetoarray(wbuf_ + COMMAND_HEADER_LENGTH, PB_MAX_MESSAGE); set_is_reply(true); }

网络模块 --Pink

存储引擎 --Nemo Nemo Pika 的存储引擎, 基于 Rocksdb 实现. 实现了 Hash, List, Set, Zset 等数据结构 Rocksdb 启动只需要加载 log 文件 Rocksdb 使用的本地硬盘, 对 SSD 盘友好 https://github.com/qihoo360/nemo

存储引擎 --Nemo

存储引擎 --Nemo HSET myhash field1 "Hello" DB->Put(wop, h6myhashfield1,hello01477671118) DB->Put(wop, Hmyhash11477671118, 6)

存储引擎 --Nemo

存储引擎 --Nemo LPUSH mylist "world" DB->Put(wop, l6mylist6, 57world01477671118) DB->Put(wop, Lmyhash11477671118, 6071)

日志模块 --Binlog Binlog 顺序写文件, 通过 Index + offset 进行同步点 检查 解决了缓冲区小的问题 支持全同步 + 增量同步

日志模块 --Binlog

主从同步 -- slaveof

主从同步 -- slaveof

Pika 遇到问题 秒删 通过修改 Rocksdb, 增加 version, timestamp 字段. 删除只需要修改 metadata 支持亿级别数据秒删

Pika 遇到问题 数据 compact 修改 Rocksdb manual compact 策略, 支持低优先级的 manual compact 根据机型调整 rocksdb 配置, compac 线程, memtable 个数 晚上定期执行

Pika 遇到问题 数据备份 需要 rocksdb 和 Binlog 配合

Pika 运维 线上架构 LVS 读写 VIP LVS 只读 VIP LVS 读写 VIP LVS 读写 VIP Master Master Master Slave Slave Slave Slave Slave 主机房 A 机房 B 机房 A 机房 B

Pika 运维 线上架构 LVS 读写 VIP LVS 只读 VIP LVS 读写 VIP LVS 只读 VIP Master Master 断点续传 Slave1 Slave2 Slave3 Slave1 提升为主库 Slave2 Slave3 主机房 A 机房 B 主机房 A 机房 B

Pika 运维 迁移工具 Redis_to_pika 将 redis 数据迁移到 pika, 基于 aof, 能全量 + 增量方式同步数 据 (Note 关闭 aof 重写 ) Pika_to_redis 业务增长过快,pika 逐渐难以支持性能, 将 pika 迁回 redis, 支持增量数据同步 Ssdb_to_pika 将 ssdb 数据迁移到 pika, 目前不支持增量同步

Pika 运维 案例一 消息推送服务部分 redis 迁移到 pika 迁移前 : SET 数据结构为主 5 套 30G 左右的 redis 主从, 占用 300G 内存 迁移后 : 1 套 50G 左右的 pika 主从, 占用 100 多 G 磁盘

Pika 运维 案例二 数据分析业务 redis 迁移到 pika 迁移前 : 到 40G 业务数据量增长迅速, 上线不到 1 周数据量增长 迁移后 : 1 套 100G+ Pika 主从

Pika 开发现状 Pika 团队目前有 2 个主力开发维护,2 个 DBA 做需求分析讨论 性能测试 bug 跟踪 回归测试 积累 1700+ 个测试用例 产品经理汇总 github 问题和交流群用户反馈, 帮用户问 题解决和需求排期开发 一月一个小版本, 二月一个大版本

Pika 开发现状 双主支持 Pika_hub 提供多机房写入支持 支持 sentinel 支持 codis

Pika 总结 恢复时间长 一主多从, 主从切换代价大 缓冲区写满问题 内存昂贵问题

Pika vs redis 劣势 由于 Pika 是基于内存和文件来存放数据, 所以性能肯定比 Redis 低一些 优势 容量大 加载 db 速度快 备份速度快 对网络容忍度高 性价比高

Pika vs redis - CPU: 24 Cores, Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz MEM: 165157944 kb OS: CentOS release 6.2 (Final) NETWORK CARD: Intel Corporation I350 Gigabit Network Connection

Pika vs redis

Pika vs redis

Pika vs redis 来自 vip 的测试 https://github.com/qihoo360/pika