bdtc2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016
TRANSCRIPT
![Page 1: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/1.jpg)
大规模内存数据库JIMDB: 从2014到2016
刘海锋@京东
www.jd.com
![Page 2: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/2.jpg)
E-Commerce Needs Fast Data
![Page 3: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/3.jpg)
Memory is the new disk.
C-- Jim Gray www.convinceandconvert.com www.nowrevolutionbook.com
@jaybaer
![Page 4: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/4.jpg)
The Jingdong In-Memory Database
以内存为中心
的数据存储
过去两年
持续建设 支撑京东大多
数动态内容
![Page 5: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/5.jpg)
演进历程
叱前时代
分布式平台化
底层技术研发
快速规模增长
全自动化维护
正在做的事情
![Page 6: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/6.jpg)
Before JIMDB
一套监控系统 百余redis实例
![Page 7: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/7.jpg)
Build a distributed system
The shared pool of big-RAM servers
management system
s2
m2
s1
m1
Java driver
集群 分片
m1
s2
m2
s1 s3
m3
s4
m4 m1
s2
m2
s3
m3
s1
Redis API Node
C driver
Scaling controller
Failure detector
Admin platform
Config center Monitoring
data pipeline
Failover controller
Failure detector
Failure detector
![Page 8: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/8.jpg)
Auto Failover
主
从
Config center
Failure Detector
Failure Detector
Failure Detector
Clients
Failover Mgr
![Page 9: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/9.jpg)
Online Dynamic Re-Sharding
Partial replication
Cluster bucket shard
![Page 10: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/10.jpg)
存储引擎
Dict LSM with RAM-SSD hybrid B+Tree
底层技术研发
复制协议
async, sync filtered, partial replication State Machine Replication
分片策略
Hash Range
![Page 11: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/11.jpg)
分而治之
纯缓存 可靠存储
不复制或异步复制
哈希分片
LRU淘汰
同步或SMR复制
范围或哈希分片
快照备份
根据业务场景交付不同集群
![Page 12: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/12.jpg)
完善的监控体系
![Page 13: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/13.jpg)
容器化
基于容器的自动化运维
自助申请接入
运维管理(WEB)
后台审批部署
镜像
机器 选择
流控 实例调度和迁移
ERP、部门、系统、
应用接口对接
自助接入portal
老平台对接
用户新建空间
每夜升级
元数据
客户端信息展示
控制台
日志 集群统计图
报警网关接口切换
![Page 14: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/14.jpg)
目前规模
256GB RAM, 10Gb NIC
数千台大内存机器,多个数据中心
1000+线上集群
数万个Docker实例
![Page 15: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/15.jpg)
极佳的性能
线上某集群,双11当日峰值TPS > 200W,99%延迟低于2ms
![Page 16: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/16.jpg)
Memory Fragment Statistics
jemalloc是目前最棒的分配器,再行开发意义不大。
![Page 17: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/17.jpg)
正在做的事情 – 更强的性能
定制网络协议栈
用户态直接驱动网卡
提升小包处理能力
更大的内存、更快的网络
![Page 18: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/18.jpg)
正在做的事情 – 增强功能
From NoSQL to NewSQL
A scale-out, flexibly replicated, in-memory data
structure store
Multiple SQL query processors running on it
JIMDB
JDBC SQL API Node
![Page 19: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/19.jpg)
正在做的事情 – 复用资源
从专属集群到复用空闲内存
弹性计算云机器
非结构化存储机器
聚合整个IDC的RAM资源
![Page 20: BDTC2015 京东-刘海锋-大规模内存数据库jimdb:从2014到2016](https://reader031.vdocuments.pub/reader031/viewer/2022012305/5881c2e01a28abdd268b582d/html5/thumbnails/20.jpg)
总结
内存,
是存储的未来。
一件事,
分步做,持续做。