Google的Bigtable学习笔记(不保证正确性)
跪求各路大侠指正:
1、首先是一个列式存储的简单数据模型的数据库,它比键值对模型/文档模型NoSQL数据库复杂点(也就更强一点)。
2、它的分布式存储性能依靠于GFS也就对单机房网络有硬性指标。
3、它同时提供了相对均衡的顺序读写操作,也就更适用于这样的应用。
4、保证SSTable不变的结构简化了读写冲突所产生的问题复杂性。同时允许不同的tablet共享一个SSTable。
5、memtable的设计减少了大量的读写冲突,双线程+序列允许归并写入,鉴于较小概率的读恢复操作,major compaction在排序时候借助写时候留存的序号进行去重,简化了写操作。
6、高级别的缓存针对访问相同数据进行的缓存服务比较容易被想到,但是块级别的缓存解决了顺序读的读写效率,是值得学习的。
7、因为row key是依照字典序进行排序的,所以在应用级别对row key的选择就是设计的一个重心。
8、字典序的设计对跨行更新以及分布式事务都提出了挑战,但是这个系统并不适用于解决类似的问题。
9、提供了无限的列结构以及column families,是它强于键值对模型/文档模型NoSQL数据库的地方,等价于自建了各种索引。也就是所谓的半结构化数据。
10、Tablets服务器对于主服务器的依赖较低,因为主服务器仅与有限的Tablets服务器进行通信,只负责解决它们的生存问题,而不用解决直接的来自于用户的请求。
11、利用Chubby进行分布式锁机制,使用了文件句柄的冲突检测来实现对于分布式服务器的管理,并配合了主服务器对Tablets的心跳检测,实现了完整的检测,在加上自杀和他杀技术的使用,使得整套系统得到了较高的可靠性。
12、两段式压缩对于类似于不同的时间点对相类似的数据进行存储后的压缩能够做到较好的压缩比,因为内容重复度比较高。
http://research.google.com/archive/bigtable-osdi06.pdf
Google的Bigtable学习笔记(不保证正确性)的更多相关文章
- Google TensorFlow深度学习笔记
Google Deep Learning Notes Google 深度学习笔记 由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上. Gith ...
- google project tango 学习笔记
google io 2015上 project tango 的演示视频
- google map api 学习笔记
(1)地图的缩放监听函数 google.maps.event.addlistener(map,"zoom_change",function(){ 缩放级别变化后的函数. }); ( ...
- Kafka学习笔记-如何保证高可用
一.术语 1.1 Broker Kafka 集群包含一个或多个服务器,服务器节点称为broker. broker存储topic的数据. 如果某topic有N个partition,集群有N个broker ...
- udacity google deep learning 学习笔记
1.为什么要在卷积网络中加入pooling(池化) 如果只利用卷积操作来减少feature map的大小,会失去很多信息.所以想到一种方法,减小卷积时的stride,留下大部分信息,通过池化来减小fe ...
- Effective STL 学习笔记 Item 30: 保证目标区间足够大
Effective STL 学习笔记 Item 30: 保证目标区间足够大 */--> div.org-src-container { font-size: 85%; font-family: ...
- Hbase技术详细学习笔记
注:转自 Hbase技术详细学习笔记 最近在逐步跟进Hbase的相关工作,由于之前对Hbase并不怎么了解,因此系统地学习了下Hbase,为了加深对Hbase的理解,对相关知识点做了笔记,并在组内进行 ...
- kafka学习笔记(一)消息队列和kafka入门
概述 学习和使用kafka不知不觉已经将近5年了,觉得应该总结整理一下之前的知识更好,所以决定写一系列kafka学习笔记,在总结的基础上希望自己的知识更上一层楼.写的不对的地方请大家不吝指正,感激万分 ...
- ucos实时操作系统学习笔记——操作系统在STM32的移植
使用ucos实时操作系统是在上学的时候,导师科研项目中.那时候就是网上找到操作系统移植教程以及应用教程依葫芦画瓢,功能实现也就罢了,没有很深入的去研究过这个东西.后来工作了,闲来无聊就研究了一下这个只 ...
随机推荐
- linux 搭建 nexus 私服及配置
安装篇 1.tar -zxvf nexus-latest-bundle.tar.gz 2.cd nexus-2.13.0-01/bin 3../nexus start 这时可能提示 ********* ...
- AbstractQueueSynchronizer
1.AbstractQueuedSynchronizer(以下简称AQS)是Java并发包提供的一个同步基础机制,是并发包中实现Lock和其他同步机制(如:Semaphore.CountDownLat ...
- Bootstrap导航点击菜单跳转与点击缩放菜单折叠按钮缓冲效果插件jquery.singlePageNav.min.js
引入步骤: <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></scrip ...
- TJI读书笔记12-接口
TJI读书笔记12-接口 抽象类和抽象方法 接口 完全解耦和策略模式 接口间的继承关系 工厂模式 乱七八糟不知道怎么归类的知识点 接口和抽象类为我们提供了更强又有力的接口和实现分离的方法. 抽象类和抽 ...
- 在bootstrap ace样式框架上修改的后台管理型模板(Tab页后台管理模板)
后台管理模板开始用frameset布局,但是有时候会遮挡比如上面导航或者左边导航的二级三级弹出菜单,因为宽度被限制了,所以有时候就用easyui或者ext的,但是样式不好看,然后看到了bootstra ...
- android_开发环境配置
在学习 Android 之前,需要配置开发环境. 我用的是 eclipse ,简单说下 eclipse 的 Android 的环境配置. 如果没有JDK得先下载:http://www.oracle.c ...
- addClass() 和 toggleClass()
addClass()是在原有的类基础上增加类属性,仍然保留原有的类的样式.语法格式为:addClass(class0 class1 ...) ,例如: $("p").addClas ...
- rhel7网络管理
实验-禁用网卡命名规则: 在GRUB_CMDLINE_Linux=“rd.lvm.lv=rhel/root vconsole.keymap=us vconsole.font=latarcyheb-s ...
- 使用Intellij idea开发
使用IntelliJ IDEA开发SpringMVC网站(一)开发环境 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 使用IntelliJ IDEA开发SpringMVC网站 ...
- css基本知识框架(转)
css基本知识框架: 1.css样式表的基本概念 2.样式表基本类型-----1.内嵌样式 2.内联样式3.链入外部样式表4.导入外部?式 3.样式表配置方法 4.字体属性----1.font-fam ...