SlideShare a Scribd company logo
Pegasus:
一个分布式KV系统的设计过程
覃左言@小米
关于我 姓名:覃左言
经历:腾讯/百度/小米
关注:基础架构、分布式系统
爱好:运动、开源
开发过微服务框架
写过RPC框架:https://github.com/baidu/sofa-pbrpc
参与过分布式框架:https://github.com/Microsoft/rDSN
正在做KV存储系统:https://github.com/XiaoMi/pegasus
大 纲 背景
设计
总结
大 纲 背景
设计
总结
Storage Service in Xiaomi
Pegasus
ZooKeeper
HDFS
HBase
FDS
对象存储服务
SDS
结构化存储服务
EMQ
消息队列服务
Storage Service In Xiaomi
上百个业务
10PB级
数万亿行
千万级QPS
>99.95%
5 HBase Committers
数百TB/day
Storage Service in Xiaomi
HBase Is Good, but Not Enough
Weak Data Locality
Layered Structure
Longtime Recovery
JVM Garbage Collection
可用性 性能
高可用
目标用户
高性能 强一致 易使用
What We Want
• 对延迟较敏感的在线业务:广告、支付
• 对可用性要求很高
• 希望提供强一致性的语义
What We Did
Pegasus
一个高可用、高性能、强一致的分布式KV存储系统
大 纲 背景
设计
总结
Many Choices …
数据视图:KV系统 还是 表格系统?
系统架构:Centralized 还是 De-Centralized?
数据分布:Hash 还是 Range?
实现语言:C++、Java 还是 Go ?
存储介质:HDD、SSD 还是 Memory ?
一致性协议:Paxos、Raft 还是其他 ?
… …
围绕需求 先做容易的选择 不要太纠结 留有切换的余地
Basic Choices
实现语言:C++ Java
• Java有GC问题
• C++性能高,风险小
存储介质:SSD HDD Memory
• 性能、成本
单机引擎:RocksDB BDB LevelDB
• LSMT(Log Structured Merge Tree)保证写性能
• 针对SSD和多核优化
性能
开发难度
风险
Model Choices
数据视图:KV系统 Tabular系统
• 关注点在架构可行性
• KV系统更易实现
• 将来可改造为Tabular系统
数据分布:固定Hash分片 一致性Hash Range分片
• 实现简单
• 数据倾斜:合理设计Hash键和Hash函数
• 可伸缩性:预设 Partition Count 远大于 Server Count
• 热点问题:Hash分片和Range分片都不易解决
HashKey SortKey用户数据: Value
Replica
Server
Replica
Server
Replica
Server
Partition
#0
Partition
#1
Partition
#2
Key
hash
route
Partition ID
• 组合主键:HashKey + SortKey
• HashKey用于Hash分片
• 同一个分片(Partition)中的数据
按照 [HashKey + SortKey] 排序
• 利用Table进行空间隔离
• 随着业务需求增加功能
数据模型
简单 灵活
… …
UserID_1
UserID_2
AttrName_1 Value1
AttrName_2 Value2
AttrName_3 Value3
AttrName_1 Value1
AttrName_2 Value2
AttrName_3 Value3
… …
… …
HashKey SortKey Value
get/set/del
multi_get/
multi_set/
scan
scan_all
• get(HashKey, SortKey)  Value
数据接口
• set(HashKey, SortKey, Value, TTL)  Bool
• del(HashKey, SortKey)  Bool
• multi_get(HashKey, SortKey[])  Value[]
• multi_set(HashKey, SortKey[], Value[])  Bool
• scan(HashKey, SortKeyBegin, SortKeyEnd)  Iterator
• scan_all()  Iterator
读单条数据
写单条数据
删单条数据
读相同HashKey的多条数据
写相同HashKey的多条数据
扫描相同HashKey的数据
扫描全部数据
Redis适配
SET SETEX GET DEL INCR INCRBY DECR DECRBY TTL
易使用
Replicated State Machine Architecture
Paxos (1990)
Raft (2013)
PacificA (2008)
Consensus Algorithm Choices
Primary
Secondary
Secondary
replica
replica
replica
Replica group
Configuration
Primary/Backup Paradigm of PacificA
Client
query
response
replicate
replicate
update/
Log
Log
Secondary
Client
prepare
prepare
ack
ack
DB
request
response
Two-Phrase Commit of PacificA
Log
Secondary
Primary
DB
DB
apply
强一致
Architecture Choices
Centralized Vs. Decentralized
Layered Vs. Integrated
Pegasus Architecture
ReplicaServer
ReplicaManager
Replica
RocksDB
Replica Replica
ReplicaServer
ReplicaManager
Replica Replica Replica
RocksDB
ReplicaServer Design Choices
RocksDB RocksDB
• 避免不同Table/Partition的数据相互影响
• 更容易实现 Load Balance 和 Drop Table
• 方便将数据分散到多个SSD盘,提高并发能力
VS
RocksDB: Log-Based Storage System
Make commit log shared by all replicas
- 减少 write compete
- 适合 batch write
ReplicaServer
ReplicaManager
Replica Replica Replica
Commit Log
RPC
Architecture of ReplicaServer
• ReplicaServer管理多个Replica
• 每个Replica 独享 RocksDB
• 所有Replica 共享 Commit Log
RocksDB RocksDBRocksDB
RocksDB
memtable
sstable
Commit Log
Write
Checkpoint
• How to catch up:
• Learn checkpoint
• Learn commit log
Commit Log
is
Shared
Split
Shared Log Private Log+
批量缓存 & 异步写
用于Recovery
Shared Log Private Log
Considering Catch-Up ...
ReplicaServer
Replica
Learner实时追加
用于Learning
ReplicaServer
ReplicaManager
Replica
RocksDB
Shared Log
RPC
Improved Architecture of ReplicaServer
• Shared Log for Recovery
• Private Log for Learning
Private Log
Replica
Private Log
Replica
Private Log
RocksDB RocksDB
■ 只使用Default Column Family
■ 禁用Write Ahead Log
■ 并发控制:写操作在单线程中串行执行,读操作允许多线程并发执行
■ 数据扩展:写操作会额外传入数据在Log中的序号(Decree)
■ 优化快照:同步  异步,避免同步过程阻塞写操作
RocksDB
memtable
sstable
Commit Log
Write
Read
RocksDB as Storage Engine
Failover
Meta
Server
Replica
Server
dblog +
heartbeat
heartbeat
heartbeat
ZooKeeper
Replica
Server
Replica
Server
dblog +
dblog +
• MetaServer和所有的
ReplicaServer维持心跳
• Failure Detection通过心
跳来实现
• Failover有三种类型:
• Primary Failover
• Secondary Failover
• MetaServer Failover
Primary
ZooKeeper
Meta
Server
Secondary
Secondary
dblog + dblog +
Client Primary
dblog +
Primary Secondary
dblog +dblog +
1. 正常读写
2. Primary挂了
3. MetaServer选择一个Secondary
成为新的Primary
4. 补充Secondary
高可用
Primary Failover
Primary
ZooKeeper
Meta
Server
Secondary
Secondary
dblog + dblog +
dblog +
Client Secondary
dblog +
Secondary
dblog +
1. 正常读写
2. 某个Secondary挂了
3. Primary在一主一备状态下
继续提供服务
4. 补充Secondary
高可用
Secondary Failover
Meta
Server
Replica
Server
dblog +
heartbeat
heartbeat
heartbeat
ZooKeeper
Replica
Server
Replica
Server
dblog +
dblog +
Meta
Server
Meta
Server
heartbeat
heartbeat
heartbeat
1. 主MetaServer和所有的
ReplicaServer维持心跳
2. 主MetaServer挂了
3. 某个备MetaServer通过
ZooKeeper抢主成为新
的主MetaServer
4. 从ZooKeeper恢复状态
5. 重新和所有ReplicaServer
建立心跳
Meta
Server
Meta
Server
recover
高可用
MetaServer Failover
• Table软删除
• Table删除后,数据会保留一段时间,防止误删除
• 元数据恢复
• 元数据丢失或者损坏时,从各ReplicaServer收集并重建元数据
• 定期冷备份
• 数据定期备份到多种介质,譬如HDFS
• 在需要的时候快速恢复
• 跨机房热备
• 在多个机房部署集群
• 采用异步复制的方式实时同步数据
• 多集群可同时对外提供服务
Data Safety
• Built on rDSN (Robust Distributed System Nucleus) framework
• https://github.com/Microsoft/rDSN
Microkernel Architecture
Most Things Are Pluggable
Friendly for Testing,
Debugging and Monitoring
Lock RPC AIO Timer
Logging Replication … …
Engineering …
• Unit Test
• Integration Test
• Simulation Test
• Simulate cluster in single process
• Processing can be replayed
• Scenario Test
• Declarative language
• Construct different scenarios (executing paths / corner cases)
等待状态
发起动作
注入错误
设置属性
How to Test
等待状态
大 纲 背景
设计
总结
Why
Pegasus是对HBase的有力补充
• 更优异的性能:C++、No GC、Data Locality
• 更高的可用性:No GC、Faster Failover
• 更轻量的部署:No HDFS、No ZooKeeper (in the future)
• 更简单的接口:Key-Value
How WhatHow
Many choices …
Fit is the best
Future Work
• PacificA  Raft
• Key-Value  Tabular
• Remove ZooKeeper Dependency
• Performance Tuning
• Improve Load Balance
• Cross Row Transaction
• Open Source
Thanks
欢迎有志之士加入我们:分布式相关、人工智能相关
简历请发至邮箱:qinzuoyan@xiaomi.com
个人微信号:
附录
Pegasus写性能
■ 单机QPS 可达 1.5w+
■ 单机QPS<1w 时,平均延迟<5ms
■ 单机QPS<1w 时,P99 延迟<20ms
注:X轴Tn为单Client线程数,Y轴Cn为Client进程数,Z轴延迟单位为微妙,集群使用5个数据节点
Pegasus读性能
■ 单机QPS 可达 10w+
■ 单机QPS<5w 时,平均延迟<1ms
■ 单机QPS<5w 时,P99 延迟<5ms
注:X轴Tn为单Client线程数,Y轴Cn为Client进程数,Z轴延迟单位为微妙,集群使用5个数据节点
注:蓝色曲线为Pegasus,红色曲线为HBase,延迟单位为微妙,集群使用10个数据节点
对比HBase
■ 读性能优势明显
■ 写性能略差
三种角色:
• Leader
• Follower
• Candidate
两个过程:
• Leader选举
• 日志复制
两个多数:
• 多数投票
• 多数复制
三个限制:
• 投票限制
• 复制限制
• 提交限制
五个保证:
• Election Safety
• Leader Append-Only
• Log Matching
• Leader Completeness
• State Machine Safety
Raft Algorithm
Raft PacificA
Strong Leader
Replicated State Machine
Logical Time
Two-Phrase Commit
Heartbeat
Majority Vote First Come First Served
Majority Replication Fully Replication
Decomposition
Log-Based Storage System
Leader Election
Commit Condition
Safety Guarantee Additional Restriction Fully Replication
Lease-Based Failure Detection
租户 房主
RocksDB supports async-checkpoint
• RocksDB记录最后一次Write的 lastDecree
• 在Sync-Checkpoint时,需先 dump memtable,然后 同步等待 dump完成
• Dump完成后,将元数据和sstable拷贝至Checkpoint,然后使用 lastDecree 进行标记
• 在整个过程中 需阻塞写操作,降低可用性
RocksDB本身支持 Sync-Checkpoint :
RocksDB
memtable
sstablePrepare Log
Write
sstable
memtable
checkpoint
Write
lastDecree
RocksDB supports async-checkpoint
RocksDB
memtable
sstablePrepare Log
Write
• RocksDB的memtable/sstable都会记录 自己当前的lastDecree
• 在Async-Checkpoint时,直接忽略memtable的数据,将元数据和sstable拷贝至
Checkpoint,并使用所有sstable的 最大lastDecree 作为Checkpoint的decree标记
• 在整个过程中 无需阻塞写操作,保证可用性
改进的RocksDB支持 Async-Checkpoint :
checkpoint
lastDecree
参考
• PacificA Algorithm
• https://www.microsoft.com/en-us/research/wp-
content/uploads/2008/02/tr-2008-25.pdf
• Raft Algorithm
• https://raft.github.io/raft.pdf
• rDSN Framework
• https://github.com/Microsoft/rDSN
• Pegasus System
• https://github.com/XiaoMi/pegasus (coming soon)

More Related Content

What's hot

VMware Virtual SAN Presentation
VMware Virtual SAN PresentationVMware Virtual SAN Presentation
VMware Virtual SAN Presentation
virtualsouthwest
 
Ceph with CloudStack
Ceph with CloudStackCeph with CloudStack
Ceph with CloudStack
ShapeBlue
 
Choose the Right Container Storage for Kubernetes
Choose the Right Container Storage for KubernetesChoose the Right Container Storage for Kubernetes
Choose the Right Container Storage for Kubernetes
Yusuf Hadiwinata Sutandar
 
Intel dpdk Tutorial
Intel dpdk TutorialIntel dpdk Tutorial
Intel dpdk Tutorial
Saifuddin Kaijar
 
Analyzing 1.2 Million Network Packets per Second in Real-time
Analyzing 1.2 Million Network Packets per Second in Real-timeAnalyzing 1.2 Million Network Packets per Second in Real-time
Analyzing 1.2 Million Network Packets per Second in Real-time
DataWorks Summit
 
05.2 virtio introduction
05.2 virtio introduction05.2 virtio introduction
05.2 virtio introduction
zenixls2
 
Modeling Data and Queries for Wide Column NoSQL
Modeling Data and Queries for Wide Column NoSQLModeling Data and Queries for Wide Column NoSQL
Modeling Data and Queries for Wide Column NoSQL
ScyllaDB
 
vSAN architecture components
vSAN architecture componentsvSAN architecture components
vSAN architecture components
David Pasek
 
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
Takaya Saeki
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet Processing
Michelle Holley
 
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜
Ryousei Takano
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
Hisaki Ohara
 
Vce vxrail-customer-presentation new
Vce vxrail-customer-presentation newVce vxrail-customer-presentation new
Vce vxrail-customer-presentation new
Jennifer Graham
 
CloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and TroubleshootingCloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and Troubleshooting
ShapeBlue
 
Troubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the BeastTroubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the Beast
DataWorks Summit
 
Open vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream KernelOpen vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream Kernel
Netronome
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
Dvir Volk
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
Kernel TLV
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
mumrah
 
Apache Spark on K8S Best Practice and Performance in the Cloud
Apache Spark on K8S Best Practice and Performance in the CloudApache Spark on K8S Best Practice and Performance in the Cloud
Apache Spark on K8S Best Practice and Performance in the Cloud
Databricks
 

What's hot (20)

VMware Virtual SAN Presentation
VMware Virtual SAN PresentationVMware Virtual SAN Presentation
VMware Virtual SAN Presentation
 
Ceph with CloudStack
Ceph with CloudStackCeph with CloudStack
Ceph with CloudStack
 
Choose the Right Container Storage for Kubernetes
Choose the Right Container Storage for KubernetesChoose the Right Container Storage for Kubernetes
Choose the Right Container Storage for Kubernetes
 
Intel dpdk Tutorial
Intel dpdk TutorialIntel dpdk Tutorial
Intel dpdk Tutorial
 
Analyzing 1.2 Million Network Packets per Second in Real-time
Analyzing 1.2 Million Network Packets per Second in Real-timeAnalyzing 1.2 Million Network Packets per Second in Real-time
Analyzing 1.2 Million Network Packets per Second in Real-time
 
05.2 virtio introduction
05.2 virtio introduction05.2 virtio introduction
05.2 virtio introduction
 
Modeling Data and Queries for Wide Column NoSQL
Modeling Data and Queries for Wide Column NoSQLModeling Data and Queries for Wide Column NoSQL
Modeling Data and Queries for Wide Column NoSQL
 
vSAN architecture components
vSAN architecture componentsvSAN architecture components
vSAN architecture components
 
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
カーネル空間ですべてのプロセスを動かすには -TAL, SFI, Wasmとか - カーネル/VM探検隊15
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet Processing
 
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜
 
Intel DPDK Step by Step instructions
Intel DPDK Step by Step instructionsIntel DPDK Step by Step instructions
Intel DPDK Step by Step instructions
 
Vce vxrail-customer-presentation new
Vce vxrail-customer-presentation newVce vxrail-customer-presentation new
Vce vxrail-customer-presentation new
 
CloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and TroubleshootingCloudStack - Top 5 Technical Issues and Troubleshooting
CloudStack - Top 5 Technical Issues and Troubleshooting
 
Troubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the BeastTroubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the Beast
 
Open vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream KernelOpen vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream Kernel
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
 
Apache Spark on K8S Best Practice and Performance in the Cloud
Apache Spark on K8S Best Practice and Performance in the CloudApache Spark on K8S Best Practice and Performance in the Cloud
Apache Spark on K8S Best Practice and Performance in the Cloud
 

Similar to Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)

大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构drewz lin
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
84zhu
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结redhat9
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
zhuozhe
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
redhat9
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
美团技术团队
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践
Li Map
 
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao ZhangBuilding the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Ceph Community
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战
rfyiamcool
 
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
涛 吴
 
How do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend partHow do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend part
acelyc1112009
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
Michael Chen
 
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3redhat9
 
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
StevenShing
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
Alex Lau
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
acelyc1112009
 
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
Yang Guanjun
 
How does Apache Pegasus used in SensorsData
How does Apache Pegasusused in SensorsDataHow does Apache Pegasusused in SensorsData
How does Apache Pegasus used in SensorsData
acelyc1112009
 

Similar to Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016) (20)

大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践
 
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao ZhangBuilding the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
Building the Production Ready EB level Storage Product from Ceph - Dongmao Zhang
 
Golang 高性能实战
Golang 高性能实战Golang 高性能实战
Golang 高性能实战
 
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
 
How do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend partHow do we manage more than one thousand of Pegasus clusters - backend part
How do we manage more than one thousand of Pegasus clusters - backend part
 
Beyond rails server
Beyond rails serverBeyond rails server
Beyond rails server
 
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3
 
MogileFS
MogileFSMogileFS
MogileFS
 
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf4.陈群-唯品会大规模Redis集群存储架构演进.pdf
4.陈群-唯品会大规模Redis集群存储架构演进.pdf
 
應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局應用Ceph技術打造軟體定義儲存新局
應用Ceph技術打造軟體定義儲存新局
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
 
Cephfs架构解读和测试分析
Cephfs架构解读和测试分析Cephfs架构解读和测试分析
Cephfs架构解读和测试分析
 
How does Apache Pegasus used in SensorsData
How does Apache Pegasusused in SensorsDataHow does Apache Pegasusused in SensorsData
How does Apache Pegasus used in SensorsData
 

Pegasus: Designing a Distributed Key Value System (Arch summit beijing-2016)