分布式系统介绍-PNUTS

PNUTS是Yahoo!设计的一种分布式数据库系统,旨在支持大规模并发操作和地理分布的数据。系统通过表单元(Tablet)进行数据分区,由表单元控制器管理迁移和拆分。数据路由、存储单元和消息中间件共同确保高可用性和一致性。PNUTS使用最终一致性模型,通过版本控制和主备策略保证读写一致性。在可用性方面,依赖于YMB进行数据提交和故障转移,而高性能则通过负载均衡和本地化操作实现。
摘要由CSDN通过智能技术生成

PNUTS是Yahoo!的分布式数据库系统,支持地域上分布的大规模并发操作。它根据主键的范围区间或者其哈希值的范围区间将表拆分为表单元(Tablet),多个表单元存储在一个服务器上。一个表单元控制器根据服务器的负载情况,进行表单元的迁移和拆分。每条记录的数据都没有固定的模式(采用JSON格式的文本)


组件

  • 区域(Region):一个区域包含全部表的数据和相关组件。
  • 表单元控制器(Tablet controller):一个表单元是是表中被划分出来的一组记录的集合。表单元控制器管理着表单元的创建,切分,维护存储单元与表单元的映射关系。有主备服务器来保证其可用性。
  • 路由器(Router):根据从表单元控制器中读取到的信息将数据路由到正确的存储单元。另外也支持数据的聚合。
  • 存储单元(Storage unit):存储表单元。可以是一个Ulix文件系统(hash表)或者MySQL InnoDB(顺序表)
  • 消息中间件(YMB):分发备份记录到其他的Region或者更新通知给客户端。

一致性

          由于PNUTS设计数据分布在地理上的不同位置,所以它没有采用代价比较高的事务操作。另外由于最终一致性可能会出现一些不希望看到的中间结果,所以PNUTS主要实现一种时序上的一致性。

          在每条记录中,有一个字段标志该记录Master所属的区域,所有的更新先发往Master,由Master将数据同步到其他的备份中。为了避免插入操作的冲突,表也分为主备&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值