摘要: 随着时间的推移,tablet会积累许多DiskRowSets,并且会在行更新时累积很多增量重做(REDO)文件。当插入一个关键字时,为了强制执行主关键字唯一性,Kudu会针对RowSets查询一组布隆过滤器,来找到可能包含该关键字的Rowset。越多的布隆过滤器检查及随后的DiskRowSet搜索, 阅读全文
posted @ 2018-01-05 22:28 niutao 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 当客户端从Kudu的表中读取数据时,必须首先建立需要连接的系列tablet服务器。 通过执行tablet发现过程(如上所述)来确定包含要读取的主关键字范围的tablet的位置(读取不必在领导者tablet上发生,除非用户明确选择该选项)。tablet随后使用扫描程序基于行集合(RowSets)和相关 阅读全文
posted @ 2018-01-05 22:26 niutao 阅读(1534) 评论(0) 推荐(0) 编辑
摘要: 写入操作是指需进行插入、更新或删除操作的一组行。需要注意的事项是Kudu强制执行主关键字的唯一性,主关键字是可以更改行的唯一标识符。为了强制执行此约束条件,Kudu必须以不同的方式处理插入和更新操作,并且这会影响tablet服务器如何处理写入 Kudu中的每个tablet包含预写式日志(WAL)和多 阅读全文
posted @ 2018-01-05 22:25 niutao 阅读(2642) 评论(0) 推荐(0) 编辑
摘要: 当创建Kudu客户端时,其会从主服务器上获取tablet位置信息,然后直接与服务于该tablet的服务器进行交谈。为了优化读取和写入路径,客户端将保留该信息的本地缓存,以防止他们在每个请求时需要查询主机的tablet位置信息。随着时间的推移,客户端的缓存可能会变得过时,并且当写入被发送到不再是tab 阅读全文
posted @ 2018-01-05 22:21 niutao 阅读(797) 评论(0) 推荐(0) 编辑
摘要: Kudu自身的架构,部分借鉴了Bigtable/HBase/Spanner的设计思想。论文的作者列表中,有几位是HBase社区的Committer/PBC成员,因此,在论文中也能很深刻的感受到HBase对Kudu设计的一些影响 Kudu的底层数据文件的存储,未采用HDFS这样的较高抽象层次的分布式文 阅读全文
posted @ 2018-01-05 22:19 niutao 阅读(1890) 评论(0) 推荐(0) 编辑