京东云平台总架构师、系统技术部负责人 刘海锋——大规模内存数据库JIMDB:从2014到2016

2020-02-27 241浏览

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