Upload
jerry-wen
View
419
Download
3
Embed Size (px)
Citation preview
大规模内存数据库JIMDB: 从2014到2016
刘海锋@京东
www.jd.com
E-Commerce Needs Fast Data
Memory is the new disk.
C-- Jim Gray www.convinceandconvert.com www.nowrevolutionbook.com
@jaybaer
The Jingdong In-Memory Database
以内存为中心
的数据存储
过去两年
持续建设 支撑京东大多
数动态内容
演进历程
叱前时代
分布式平台化
底层技术研发
快速规模增长
全自动化维护
正在做的事情
Before JIMDB
一套监控系统 百余redis实例
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
Auto Failover
主
从
Config center
Failure Detector
Failure Detector
Failure Detector
Clients
Failover Mgr
Online Dynamic Re-Sharding
Partial replication
Cluster bucket shard
存储引擎
Dict LSM with RAM-SSD hybrid B+Tree
底层技术研发
复制协议
async, sync filtered, partial replication State Machine Replication
分片策略
Hash Range
分而治之
纯缓存 可靠存储
不复制或异步复制
哈希分片
LRU淘汰
同步或SMR复制
范围或哈希分片
快照备份
根据业务场景交付不同集群
完善的监控体系
容器化
基于容器的自动化运维
自助申请接入
运维管理(WEB)
后台审批部署
镜像
机器 选择
流控 实例调度和迁移
ERP、部门、系统、
应用接口对接
自助接入portal
老平台对接
用户新建空间
每夜升级
元数据
客户端信息展示
控制台
日志 集群统计图
报警网关接口切换
目前规模
256GB RAM, 10Gb NIC
数千台大内存机器,多个数据中心
1000+线上集群
数万个Docker实例
极佳的性能
线上某集群,双11当日峰值TPS > 200W,99%延迟低于2ms
Memory Fragment Statistics
jemalloc是目前最棒的分配器,再行开发意义不大。
正在做的事情 – 更强的性能
定制网络协议栈
用户态直接驱动网卡
提升小包处理能力
更大的内存、更快的网络
正在做的事情 – 增强功能
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
正在做的事情 – 复用资源
从专属集群到复用空闲内存
弹性计算云机器
非结构化存储机器
聚合整个IDC的RAM资源
总结
内存,
是存储的未来。
一件事,
分步做,持续做。