SlideShare uma empresa Scribd logo
1 de 67
Baixar para ler offline
分布式 Key Value Store 漫谈

        V1.0
    广州技术沙龙(09/08/08)

           Tim Yang
      http://timyang.net/
Agenda
• Key value store 漫谈
  – MySQL / Sharding / K/V store
  – K/V store性能比较
• Dynamo 原理及借鉴思想
  – Consistent hashing
  – Quorum (NRW)
  – Vector clock
  – Virtual node
• 其他话题
说明
• 不复述众所周知的资料
 –不是Key value store知识大全
• 详解值得讲解或有实践体会的观点
场景
• 假定场景为一IM系统,数据存储包括
 – 1. 用户表(user)
   • {id, nickname, avatar, mood}
 – 2. 用户消息资料(vcard)
   • {id, nickname, gender, age, location…}
 – 好友表(roster)
   • {[id, subtype, nickname, avatar,
     remark],[id2,…],…}
单库单表时代
• 最初解决方案
 –单库单表, MySQL
• 随着用户增长,将会出现的问题
 –查询压力过大
• 通常的解决方案
 –MySQL replication及主从分离
单库单表时代
• 用户数会继续增大,超出单表写的负
  载
• Web 2.0, UGC, UCD的趋势,写请求
  增大,接近读请求
 – 比如读feed, 会有 “like” 等交互需要写
• 单表数据库出现瓶颈,读写效率过低
分库分表时代
• 将用户按ID(或其他
  字段)分片到不同数
  据库
• 通常按取模算法
  hash() mod n
• 解决了读写压力问
  题
但是,Shard ≠ 架构设计
• 架构及程序人员的精力消耗在
  切分上
• 每一个新的项目都是重复劳动
不眠夜-resharding
通知:我们需要21:00-7:00停机维护
• 有办法避免吗?
Sharding framework
• 框架,如hivedb
 –隔离分库的逻辑
 –期望对程序透明,和单库方式编程
• 没有非常成功的框架
 –数据存储已经类似key/value
 –期望用SQL方式来用,架构矛盾
• 框架之路也失败了,为什么?
分库分表过时了
• 无需继续深入了解那些切分的奇巧淫技
• nosql!
Key value时代
• 我们需要的是一个分布式,自扩展
  的storage
• Web应用数据都非常适合
  key/value形式
–User, vcard, roster 数据
  • {user_id: user_data}
百家争鸣
•   Berkeley DB(C), MemcacheDB(C)
•   Bigtable, Hbase(Java), Hypertable(C++, baidu)
•   Cassandra(Java)
•   CouchDB(Erlang)
•   Dynamo(Java), Kai/Dynomite/E2dynamo(Erlang)
•   MongDB
•   PNUTS
•   Redis(C)
•   Tokyo Cabinet(C)/Tokyo Tyrant/LightCloud
•   Voldemort(Java)
问题
• Range select:
 –比如需删除1年未登录的用户
• 遍历
 –比如需要重建索引
• Search
 –广州,18-20
• 没有通用解决方法,依赖外部
• Search
  –Lucene
  –Sphinx
非分布式key/value store
• 通过client hash来实现切分
• 通过replication来实现backup,
  load balance
• 原理上和MySQL切分并无区别,
  为什么要用?
 –读写性能
 –简洁性 (schema free)
Key store vs. MySQL
• 性能
 – Key store读写速度几乎相同 O(1)
   • O(1) vs. O(logN)
 – 读写性能都比MySQL快一个数量级以上
• 使用方式区别
 – MySQL: Relational      Object
 – Key store: Serialize   De-serialize
非分布式k/v缺少
• 自扩展能力,需要关心数据维护
  – 比如大规模MCDB部署需专人维护
• Availability, “always on”
• Response time, latency
  – No SLA(Service Level Agreement)
• Decentralize
  – Master/slave mode
产品
• Berkeley db及其上层产品, 如
  memcachedb
• Tokyo cabinet/Tyrant及上层产品,如
  LightCloud
• Redis及上层产品
• MySQL, 也有用MySQL来做,如
  friendfeed
分布式K/V store
•   Dynamo (Amazon)
•   Cassandra (facebook)
•   Voldemort (LinkedIn)
•   PNUTS (Yahoo)
•   Bigtable (Google)
•   HyperTable(Baidu)
                           (* 粗体为开源产品)
Benchmark
• Key value store
  – Berkeley db - memcachedb
  – Tokyo cabinet - Tyrant
  – Redis
• 测试环境
  – XEON 2*4Core/8G RAM/SCSI
  – 1 Gigabit Ethernet
Benchmark
• Server使用同一服务器、同一硬盘
• Client为局域网另外一台,16线程
• 都是用默认配置,未做优化
 – Memcached 1.2.8
 – bdb-4.7.25.tar.gz
 – memcachedb-1.2.1(参数 -m 3072 –N –b xxx)
 – tokyocabinet-1.4.9, tokyotyrant-1.1.9.tar.gz
 – redis-0.900_2.tar.gz (client: jredis)
• 三大高手
–Tokyo cabinet
–Redis
–Berkeley DB
• 究竟鹿死谁手?
100 bytes, 5M rows
       request per second
900
 00
800
 00
700
 00
600
 00
500
 00
400
 00                                Wie
                                    rt
300
 00                                Ra
                                    ed
200
 00
100
 00
   0
       Mmahd Mmahd
        ecce  ecceb    Tko
                        oy   Rds
                              ei
                      Cbnt
                       aie
Requests per second, 16 threads

Store              Write     Read
Memcached           55,989    50,974
Memcachedb (bdb)     8,264    35,260
Tokyo
                    11,480    46,238
 Cabinet/Tyrant
Redis               85,765    71,708
20k data, 500k rows
  request per second
16000

14000

12000

10000

8000                                         Write
                                             Read
6000

4000

2000

   0
        Memcachedb   Tokyo Cabinet   Redis
Requests per second, 16 threads

Store               Write     Read

Memcachedb            357    15,318

Tokyo Cabinet        2,080    7,900

Redis                1,874    5,641
• 到此,我们已经了解了
 –繁琐的切分
 –Key value store的优势
 –Key value store的性能区别
• 可以成为一个合格的架构师了吗
• 还缺什么
新需求

• 如何设计一个分布式的有状
  态的服务系统?
–如IM Server, game server
–用户分布在不同的服务器上,
 但彼此交互
• 前面学的“架构”毫无帮助
分布式设计思想红宝书
– Dynamo: Amazon's Highly Available
  Key-value Store
– Bigtable: A Distributed Storage System
  for Structured Data
CAP理论
• 分布式领域CAP理论,
  Consistency(一致性),
  Availability(可用性), Partition
  tolerance(分布) 三部分在系统
  实现只可同时满足二点,没法
  三者兼顾。
• 架构设计师不要精力浪费在如
  何设计能满足三者的完美分布
  式系统,而是应该进行取舍
Dynamo 思想
• The A.P. in CAP
  – 牺牲部分consistency
  – “Strong consistency reduce availability”
  – Availability: 规定时间响应(e.g. < 30ms)
• Always writable
  – E.g. shopping cart
• Decentralize
1. Consistent Hashing
• 传统的应用
 – 如memcached, hash() mod n
 – Linear hashing
• 问题
 – 增删节点,节点失败引起所有数据重新
   分配
• Consistent hash如何解决这个问题?
1. Consistent Hashing




* Image source: http://alpha.mixi.co.jp/blog/?p=158
如何确保always writable
• 传统思路
 – 双写?
 – 如何处理版本冲突,不一致?
2. Quorum NRW
• NRW
  – N: # of replicas
  – R: min # of successful reads
  – W: min # of successful write
• 只需 W + R > N
场景
•   典型实现:N=3, R=2, W = 2
•   几种特殊情况
•   W = 1, R = N, 场景?
•   R = 1, W = N , 场景?
•   W = Q, R = Q where Q = N / 2 + 1
• 如果N中的1台发生故障,Dynamo立
  即写入到preference list中下一台,确
  保永远可写入
• 问题:版本不一致
• 通常解决方案:timestamp,缺点?
 – Shopping cart
3. Vector clock
   • Vector clock
          – 一个记录(node, counter)的列表
          – 用来记录版本历史




* Image source: http://www.slideshare.net/takemaru/kai-an-open-source-implementation-of-amazons-dynamo-472179
Reconciliation, Merge version
• 如何处理(A:3,B:2,C1)?
 – Business logic specific reconciliation
 – Timestamp
 – High performance read engine
    • R = 1, W = N
• 越变越长?Threshold=10
如果节点临时故障
• 典型方案:Heart-beat, ping
• Ping如何处理无中心,多节点?
• 如何保证SLA?
 –300ms没响应则认为对方失败
• 更好的方案?
gossip
gossip




* Image source: http://www.slideshare.net/Eweaver/cassandra-presentation-at-nosql
临时故障时写入的数据怎么办
• Hinted handoff
由于存在故障因素
        如何检查数据的一致性
• Merkle tree
4. Virtual Node
• Consistent hashing, 每个节点选一个落
  点,缺点?
增删节点怎么办
• 传统分片的解决方法:手工迁移数据
• Dynamo: replication on vnode
IDC failure
• Preference list
• N nodes must in different data center
程序如何组织上述一切
• Node has 3 main component
  – Request coordination
  – Membership
  – Failure detection
Client driven vs. server driven
• Coordinator
  – Choose N nodes by using
    consistent hashing
  – Forwards a request to N
    nodes
  – Waits responses for R or
    W nodes, or timeout
  – Check replica version if get
  – Send a response to client
Dynamo impl.
• Kai, in Erlang
• E2-dynamo, in Erlang
• Sina DynamoD, in C
  –N=3
  – Merkle tree based on commit log
  – Virtual node mapping saved in db
  – Storage based on memcachedb
• 已经学习了4种分布式设计思想
–Consistent hashing
–Quorum
–Vector clock
–Virtual node
• 只是分布式理论冰山一角
• 但已经够我们使用在很多场合
• 实战一下?
分布式Socket Server
        可借鉴的思想
• 节点资源分布
• 假定5个节点采用取模分布, hash() mod n
• 某台发生故障,传统解决解决方法
 – 马上找一个替换机启动
 – 将配置文件节点数改成4,重启
 – 都需影响服务30分钟以上
应用更多分布式设计
• 1. consistent hashing
• 2. 临时故障?Gossip
• 3. 临时故障时候负载不够均匀?vnode
Hinted handoff
• 失败的节点又回来了,怎么办?
• Node 2 back, but user still on Node1
• Node 1 transfer handoff user session to
  Node2
其他话题?
Bigtable
Bigtable
• 相比Dynamo, Bigtable是贵族式的
 –GFS vs. bdb/mysql
 –Chubby vs. consistent hashing
• Dynamo更具有普遍借鉴价值
PNUTS
PNUTS
进阶指南-了解源码
• 如果关注上层分布式策略,可看
 – Cassandra (= Dynamo + Bigtable)
• 关注底层key/value storage,可看
 – Berkeley db
 – Tokyo cabinet
Language
• 实现分布式系统的合适语言?
• Java, Erlang, C/C++
 – Java, 实现复杂上层模型的最佳语言
 – Erlang, 实现高并发模型的最佳语言
 – C++, 实现关注底层高性能key value存储。
Q&A

         Thanks you!

• Tim Yang: http://timyang.net/
• Twitter: xmpp

Mais conteúdo relacionado

Mais procurados

新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~Daisuke Ikeda
 
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019confluent
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareHostedbyConfluent
 
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪崇之 清水
 
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAmazon Web Services Japan
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Web Services Japan
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定Kan Itani
 
[AWSマイスターシリーズ] Amazon ElastiCache
[AWSマイスターシリーズ] Amazon ElastiCache[AWSマイスターシリーズ] Amazon ElastiCache
[AWSマイスターシリーズ] Amazon ElastiCacheAmazon Web Services Japan
 
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話Hibino Hisashi
 
Stream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NETStream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NETconfluent
 
老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設修平 富田
 
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup AppliancesDeep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup AppliancesVeritas Technologies LLC
 
AWSで実現するバックアップとディザスタリカバリ
AWSで実現するバックアップとディザスタリカバリAWSで実現するバックアップとディザスタリカバリ
AWSで実現するバックアップとディザスタリカバリAmazon Web Services Japan
 
急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築
急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築
急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築Hirokazu Ouchi
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話Kentaro Yoshida
 

Mais procurados (20)

新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Hypervisors
HypervisorsHypervisors
Hypervisors
 
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
 
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
Kafka on Kubernetes: Keeping It Simple (Nikki Thean, Etsy) Kafka Summit SF 2019
 
HBase at LINE
HBase at LINEHBase at LINE
HBase at LINE
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
 
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
 
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCacheAWS Black Belt Online Seminar 2016 Amazon ElastiCache
AWS Black Belt Online Seminar 2016 Amazon ElastiCache
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定
 
[AWSマイスターシリーズ] Amazon ElastiCache
[AWSマイスターシリーズ] Amazon ElastiCache[AWSマイスターシリーズ] Amazon ElastiCache
[AWSマイスターシリーズ] Amazon ElastiCache
 
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
 
Stream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NETStream Processing with Apache Kafka and .NET
Stream Processing with Apache Kafka and .NET
 
老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設
 
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup AppliancesDeep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
Deep Dive: a technical insider's view of NetBackup 8.1 and NetBackup Appliances
 
Virtualization 101
Virtualization 101Virtualization 101
Virtualization 101
 
AWSで実現するバックアップとディザスタリカバリ
AWSで実現するバックアップとディザスタリカバリAWSで実現するバックアップとディザスタリカバリ
AWSで実現するバックアップとディザスタリカバリ
 
急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築
急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築
急なトラフィック増にも動じない、Amazon S3とCloudFrontを活用したWebサイト構築
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
Nutanix basic
Nutanix basicNutanix basic
Nutanix basic
 

Destaque

Java常见问题排查
Java常见问题排查Java常见问题排查
Java常见问题排查bluedavy lin
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Feng Yu
 
Scaling GIS Data in Non-relational Data Stores
Scaling GIS Data in Non-relational Data StoresScaling GIS Data in Non-relational Data Stores
Scaling GIS Data in Non-relational Data StoresMike Malone
 
Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010Tim Y
 
I18n design approach for global enterprise platforms
I18n design approach for global enterprise platformsI18n design approach for global enterprise platforms
I18n design approach for global enterprise platformsReddappa Gowd Bandi
 
分布式系统缓存设计
分布式系统缓存设计分布式系统缓存设计
分布式系统缓存设计zhujiadun
 
Design and Implementation of a High- Performance Distributed Web Crawler
Design and Implementation of a High- Performance Distributed Web CrawlerDesign and Implementation of a High- Performance Distributed Web Crawler
Design and Implementation of a High- Performance Distributed Web CrawlerGeorge Ang
 
人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析isnull
 
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版XiaoJun Hong
 
Erlang及其应用
Erlang及其应用Erlang及其应用
Erlang及其应用Feng Yu
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理zijia
 
Erlang高级原理和应用
Erlang高级原理和应用Erlang高级原理和应用
Erlang高级原理和应用Feng Yu
 
Inside Erlang Vm II
Inside Erlang Vm IIInside Erlang Vm II
Inside Erlang Vm IIFeng Yu
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Wensong Zhang
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理zijia
 
LVS development and experience
LVS development and experienceLVS development and experience
LVS development and experienceWensong Zhang
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis ClusterNAVER D2
 
高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查bluedavy lin
 

Destaque (20)

Java常见问题排查
Java常见问题排查Java常见问题排查
Java常见问题排查
 
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
 
Scaling GIS Data in Non-relational Data Stores
Scaling GIS Data in Non-relational Data StoresScaling GIS Data in Non-relational Data Stores
Scaling GIS Data in Non-relational Data Stores
 
Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010
 
I18n design approach for global enterprise platforms
I18n design approach for global enterprise platformsI18n design approach for global enterprise platforms
I18n design approach for global enterprise platforms
 
分布式系统缓存设计
分布式系统缓存设计分布式系统缓存设计
分布式系统缓存设计
 
Design and Implementation of a High- Performance Distributed Web Crawler
Design and Implementation of a High- Performance Distributed Web CrawlerDesign and Implementation of a High- Performance Distributed Web Crawler
Design and Implementation of a High- Performance Distributed Web Crawler
 
人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析人人网技术经理张铁安 Feed系统结构浅析
人人网技术经理张铁安 Feed系统结构浅析
 
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版
 
Erlang及其应用
Erlang及其应用Erlang及其应用
Erlang及其应用
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理
 
Erlang高级原理和应用
Erlang高级原理和应用Erlang高级原理和应用
Erlang高级原理和应用
 
Inside Erlang Vm II
Inside Erlang Vm IIInside Erlang Vm II
Inside Erlang Vm II
 
Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务Taobao图片存储与cdn系统到服务
Taobao图片存储与cdn系统到服务
 
Linux内存管理
Linux内存管理Linux内存管理
Linux内存管理
 
LVS development and experience
LVS development and experienceLVS development and experience
LVS development and experience
 
Git 实战
Git 实战Git 实战
Git 实战
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster
 
DAE
DAEDAE
DAE
 
高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查高性能的Java代码编写及常见问题排查
高性能的Java代码编写及常见问题排查
 

Semelhante a 分布式Key Value Store漫谈

分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列XiaoJun Hong
 
亚马逊云计算Aws
亚马逊云计算Aws亚马逊云计算Aws
亚马逊云计算Aws锐 张
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁reinhardx
 
分布式存储与TDDL
分布式存储与TDDL分布式存储与TDDL
分布式存储与TDDLmysqlops
 
构建可扩展的微博系统
构建可扩展的微博系统构建可扩展的微博系统
构建可扩展的微博系统lonegunman
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.comHo Kim
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展drewz lin
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展Hesey
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
Google LevelDB Study Discuss
Google LevelDB Study DiscussGoogle LevelDB Study Discuss
Google LevelDB Study Discusseverestsun
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化丁 宇
 
Memcached浅析 韩建华
Memcached浅析 韩建华Memcached浅析 韩建华
Memcached浅析 韩建华youzitang
 
Mysql调优
Mysql调优Mysql调优
Mysql调优ken shin
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹國昭 張
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & developmentXuefeng Zhang
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计RolfZhang
 

Semelhante a 分布式Key Value Store漫谈 (20)

分布式缓存与队列
分布式缓存与队列分布式缓存与队列
分布式缓存与队列
 
亚马逊云计算Aws
亚马逊云计算Aws亚马逊云计算Aws
亚马逊云计算Aws
 
豆瓣网技术架构变迁
豆瓣网技术架构变迁豆瓣网技术架构变迁
豆瓣网技术架构变迁
 
A
AA
A
 
分布式存储与TDDL
分布式存储与TDDL分布式存储与TDDL
分布式存储与TDDL
 
java title
java titlejava title
java title
 
构建可扩展的微博系统
构建可扩展的微博系统构建可扩展的微博系统
构建可扩展的微博系统
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.com
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
大型网站架构的发展
大型网站架构的发展大型网站架构的发展
大型网站架构的发展
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
Google LevelDB Study Discuss
Google LevelDB Study DiscussGoogle LevelDB Study Discuss
Google LevelDB Study Discuss
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360
 
淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
 
Memcached浅析 韩建华
Memcached浅析 韩建华Memcached浅析 韩建华
Memcached浅析 韩建华
 
Mysql调优
Mysql调优Mysql调优
Mysql调优
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & development
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计1到100000000 - 分布式大型网站的架构设计
1到100000000 - 分布式大型网站的架构设计
 

分布式Key Value Store漫谈