云计算架构的知识

来源:互联网 发布:儿童英语软件哪个好 编辑:程序博客网 时间:2024/05/01 19:21

联机事务处理OLTP(On-line Transaction Processing)
联机分析处理OLAP(On-line Analytical Processing)

hadoop
bigtable
nosql

同构系统:
 一组master-slave存放有相同的数据,单点故障只能从所在机器组的节点恢复. 1-1备份,多1倍的机子。
异构系统:
 减少成本,快速增长
 数据被动态分配到集群中的任意一个节点

云存储的数据结构:

1)分布式hash表
   通过一致性hash将数据随机分布,支持范围查询
   Amazon Dynamo,S3,Simpledb

2)分布式B+树
   连续存放,支持范围查询,需要通过分裂和合并实现
   单层系统 MICROSOFT SQL AZURE
   多层系统 Google GFS&BIG TABLE,Megastore
            Yahoo PNUTS
   动态、静态数据分离 TAOBAO Oceanbase
   
3)分布式hash表
  Amazon Dynamo,S3:
   数据结构  key-value
   仅支持 PUT GET DELETE操作
  Amazon Simpledb :
   按照domain进行数据划分,限制在10GB内

4)Google云存储
  a)分布式文件系统GFS 带追加功能
  b)分布式数据库系统BigTable 将事务日志追加到GFS,
    BIGTABLE内部数据连续存储,逻辑上构成分布式B+树
  c)Megastore,percolator在bigtable上实现了分布式事务、索引、sql查询
   缺点:分层过多,延迟大,开发难度大
5)SQL Azure
    对sql server进行了分布式扩展
    缺点:不支持sql azure实例的分裂和合并
6)yahoo pnuts没有对外提供云存储服务

7)云存储系统的难点在于状态数据的迁移和持久化
  状态数据:系统的事务提交日志
  google bigtable 用gfs实现日志持久化
  sql azure 直接提交日志到数据的副本所在地
  pnuts通过yahoo!message broker中间件持久化日志


8) Apache Hadoop的HBase,或者Facebook的cassandra

淘宝oceanbase
1)目的: 淘宝内部在线业务的云存储问题
2)设计系统需要考虑现在及未来一段时间的需求
3)  RootServer:负责数据定位、机器管理、负载均衡、全局表Schema信息管理等。
    UpdateServer:负责存储动态数据,存储介质为内存和SSD。
    ChunkServer:负责存储静态数据,数据存储3份,存储介质为磁盘或者SSD。
    Client:Oceanbase提供的胖客户端。

4)读操作要读updateserver与chunkserver,写操作只需向updateserver写入即可
  updateserver采用实时同步的强一致性,只有主备机都操作成功才返回客户端
  静态数据的存储格式为sstable表,数据划分为最大几百MB的子表
  通过以下3种方式优化
  bloom filter,block cache,key-value cache
 
5)sstable支持按列组排序
动态数据采用cow(copy on write)实现单击内存b+树,单写多读不需加锁
6)静态数据形成分布式b+树
  动态数据为单机b+树
7)支持自动负载均衡,在线修改schema、内置压缩解压缩




不懂的概念:
1) QPS TPS  qurey per second   transaction(insert update delete) per second
   磁盘的IOPS
2) 范围查询
3)Linux HA方式      双击热备份?
4)随机读 随机写


原创粉丝点击