谷歌公司十年前的三项工作,奠定了当今大数据生态的技术基础
Bigtable 的数据将以 SSTable 的形式持久化存储,SSTable 相关知识请另外自行查阅。其索引结构如图所示: Bigtable 的查询原理是根据 row key, column key, timestamp 等字段,得到对应的 value。相关字段的属性信息如下: * row key:大小一般在 10-100 bytes,最多 64KB。对一个 row key 的读写操作是原子的; * column key: 由 column family + column key 组成; * timestamp:64位整数,以微秒或其他形式存在,用于实现数据的版本管理。在产生时间戳时要避免碰撞。 设计思想 Bigtable 的主要设计思想如下: 1. 可扩展性 2. 高性能 3. 向外提供特别的接口,不支持完全的关系数据模型; 4. 动态支持数据格式和 schema 变化,客户端可以对数据的存放位置进行推断; 5. 索引由 row 和 column 等字符串联合构成; 6. 将数据内容作为不可解释的字符串对待; 05 — 总结 在以大量 x86 服务器搭建的分布式集群上设计实现系统时,需要考虑的关键问题可以总结如下: 1. 数据分布(Location):数据在集群中的分布。为了提高 I/O 效率,避免主机之间的网络通信成为全局瓶颈,需要对数据在整个集群的分布做出合理安排,将经常被一同访问的数据尽量安置在一起; 2. 容错:考虑在大规模集群中,单点故障可能导致的故障问题; 3. 一致性:分布式场景下需要将数据做分开备份以避免单点故障造成数据永久丢失,这也使得机器间数据状态一致性更难控制; 4. 负载均衡:避免单个机器承担过多工作,应该尽可能发挥每台机器的性能,提升大型工作的执行效率。 个人评价 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |