Vector Clock/Version Clock
physicalclock机器上的物理时钟,不同的机器在同一个时间点取到的physicalclock不一样,之间会存在一定的误差,NTP可以用来控制这个误差,机器之间的时钟误差可以控制在几十ms以内。两个事件a和b,a在机器M1上physicalclock为12点5分0秒6ms发生,b在机器M2上p
基于KV Data Model实现Table Data Model
HBase对外暴露出来的是一个表格数据模型,如下图所示rowkey应用程序可以自己设计。每一个Cell可以保存多个版本的数据,由timestamp标示版本。应用程序可以自己指定timestamp,如果不指定HBase会设置为当前时间。RegionServer是HBase对外提供数据存取的server
分布式存储系统事务时序
今天谈谈分布式事务的时序问题。在说这个问题之前首先说说这为什么是个问题。单机场景对于数据库来说,读到已经commit的数据是最基本的要求。一般来说,为了性能,读写不互相阻塞,现在的数据库系统(Oracle,MySQL,OceanBase,Spanner,CockRoachDB,HBase)几乎无一例
Google的分布式关系型数据库F1和Spanner
F1是Google开发的分布式关系型数据库,主要服务于Google的广告系统。Google的广告系统以前使用MySQL,广告系统的用户经常需要使用复杂的query和join操作,这就需要设计shard规则时格外注意,尽量将相关数据shard到同一台MySQL上。扩容时对数据reshard时也需要尽量
HDFS Append时packet的格式以及DataNode对block/checksum文件的处理
HDFSAppend时packet的格式以及DataNode对block/checksum文件的处理HDFS的Block一般比较大,默认64MB/128MB,客户端给DataNode发数据实际上是以Packet的形式发送的,Packet一般只有64KB左右。Packet内部由分为一个个chunk,每
HDFS-RAID原理和实现
HDFS-RAID是Facebook基于hadoop-20-append分支(第一代Hadoop)开发的raid方案,对HDFS的修改极少,主要包括为NameNode增加了根据block信息找到block所属文件的接口。RAID的基本知识和目前社区的方案对比见这,本文重点分析HDFS-RAID的原理
f4: Facebook’s Warm BLOB Storage System——Erasure Code
Facebook在OSDI2014上发表论文f4:Facebook’sWarmBLOBStorageSystem,这个系统主要目的就是降低存储成本,在容忍磁盘,主机,机架,数据中心的同时提供2.1倍的存储因子(用户存储的1bit数据实际上占用磁盘2.1bit空间)。本文只讨论f4系统的核心Erasu
HBase Scan Timeout-OutOfOrderScannerNextException
最近迁移数据时需要执行大Scan,HBase集群经常碰到以下日志:Exceptioninthread"main"org.apache.hadoop.hbase.DoNotRetryIOException:FailedafterretryofOutOfOrderScannerNextException
对象存储系统设计
存储选型Blob(binarylargeobject)存储系统主要用来存储二进制的大对象,比如图片,视频。这样的数据不太适合存储在类LSM系统例如HBase中,原因在于这种数据尺寸相对较大,写入RegionServer的memstore后很快会触发region的flush,在磁盘上形成大量的数据文件
HDFS ErasureCode方案对比
HDFS目前存储文件的方案是将一个文件切分成多个Block进行存储,通常一个Block64MB或者128MB,每个Block有多个副本(replica),每个副本作为一个整体存储在一个DataNode上,这种方法在增加可用性的同时也增加了存储成本。ErasureCode通过将M个数据block进行编