Kudu 架构—tablet 的冗余存储机制 | 学习笔记

简介: 快速学习 Kudu 架构—tablet 的冗余存储机制

开发者学堂课程【NoSQL 数据库 Kudu 教程Kudu 架构—tablet 的冗余存储机制学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/723/detail/12900


Kudu 架构—tablet 的冗余存储机制


内容介绍:

一、tablet

二、tablet server


一、Tablet

tablet 当中的冗余存储机制的概念,tablet 是表当中水平分区的一部分,一个表有多个 tablet 组成,如果说直接把tablet 放在的服务器上面,没有什么问题,但是可能会产生所谓的单点故障,比如说一个表被分成1234个台播器,如果当中一个台播器挂掉了,那是不是整个表的数据就不完整了,在底层层面 Kudu 针对每一个 tablet 都做一个冗余存储。

image.png

这里有两个 tablet tablet1,除了在这台服务器上存放一份,这台服务器也存放一份,另一台服务器也存放一份,这样就形成一种冗余机制,非常类似于 HDi 当中的一个快存储的机制,这三个 tablet1之间,以这个绿色中为例,这三个 tablet1之间,之间有一个关系,在任意给定的时刻当中,一个称之为 leader,另外成为 follow,所以为什么会做一个划分因为当中还要把数据负责,对外提供读写能力,这当中不管什么操作,读和写可以什么叫做事务请求和非事务请求,如果都是来读数据,不涉及到数据的修改,这个没有任何关系,从这里读也可以,从这里读也可以,从这里也可以,但是一旦发展到或者涉及到数据的修改,就是事务性操作就有问题。

 

二、tablet server

比如有一个客户端,知道最终对客户端提供读写能力的,就是的 tablet server,如下图

image.png

左边这里有一个叫做 Kudu Client a,在右边这里又有一个客户端,叫做 client b。这两个客户端访问的 Kudu 集群,概括起来要么读,要么写,事务是事务,如果两个同时去对的 tablet1进行一个修改,而且去修改同一条记录数据会怎么样,数据之间可能会产生一种冲突,两个都要修改到底俩谁先修改,这两个会产生事物上冲突,所以为了解决这种冲突,虽然都叫冗余,但是在任意给定的时刻,针对 tab 而言,叫做 leader,简单给标个颜色,另外两个,就叫做follow,所以说针对的冗余,也做了一个 leaderfollow 区分,相当于这三个 tablet1,本质上是不一样的,这么区分的关系很重要,Leader 简单描述下,对外提供数据的读写服务,注意除了支持读还是写,但是要注意两个 follow,只支持数据的读服,要去修改数据,知道要操作的叫 tablet1,必须找 leader,之所以在 tablet 的冗余中,一些划分所谓的 leaderfollow 主要是为了保证数据的一致性,是为了保证数据的一致性,因为不仅要进行访问能力分析数据,还可能涉及到一个随机的修改,尤其修改就容易产生冲突,所以就明白了,在的讲义上所描述的 Tablet 当中,在任何给定的时刻,一个副本叫做 leader tablet,其他的就叫 follow ,leader 主要是负责的读和写,所以写很重要。leader 只负责的读服,这样就避免了一种冲突。tablet 和的 tablet server 应该是一个多对多的关系,首先第一点明确一个 tablet 可以存放在多个 tablet 服务器上面,如下图的右边与的服务器。

image.png

W 有服务器,X有 服务器,Y 有服务器 Z,一个 tablet1可以放在多个 tablet 服务器上面,相当于一个冗余,另外一个,一个服务器上面可以存放多个 tablet,这里存 tablet1,也可以存放的 tablet2,这一点非常类似于的 detnod,一个数据块 block,可以放在多个机器上,然后,一个机器上 table 可以多放存放不同的数据块,所以 tablet tablet 社会有什么关系,是一种多对多的关系,主要还是底层,考虑到数据的一个安全性,又考虑数据,一个读写能力,做了一种架构设计,以上就是整体步骤当中一个大致的架构和一些局部的一个细节,对比理解的 HBase HPDS会更加的有帮助。

相关文章
|
1月前
|
存储 数据采集 弹性计算
Codota的存储架构通过多种方式保障数据安全
Codota的存储架构通过多种方式保障数据安全
30 4
|
4月前
|
存储 缓存 前端开发
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
69 2
|
1月前
|
SQL Java 数据库连接
Mybatis架构原理和机制,图文详解版,超详细!
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。本文详细解析了MyBatis的架构原理与机制,帮助读者全面提升对MyBatis的理解和应用能力。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Mybatis架构原理和机制,图文详解版,超详细!
|
1月前
|
存储 缓存 弹性计算
Codota的服务器存储架构
Codota的服务器存储架构
29 5
|
1月前
|
存储 缓存 弹性计算
Codota的存储架构
Codota的存储架构
34 3
|
2月前
|
存储 资源调度 算法
操作系统的心脏:深入理解内核架构与机制####
【10月更文挑战第16天】 本文旨在揭开操作系统最神秘的面纱——内核,通过剖析其架构设计与关键机制,引领读者一窥究竟。在这篇探索之旅中,我们将深入浅出地讨论内核的基本构成、进程管理的智慧、内存分配的策略,以及那至关重要的系统调用接口,揭示它们是如何协同工作,支撑起现代计算机系统的高效运行。这既是一次技术的深潜,也是对“看不见的手”调控数字世界的深刻理解。 ####
64 3
|
2月前
|
存储 监控 分布式数据库
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
本文介绍了百亿级数据存储架构的设计与实现,重点探讨了ElasticSearch和HBase的结合使用。通过ElasticSearch实现快速检索,HBase实现海量数据存储,解决了大规模数据的高效存储与查询问题。文章详细讲解了数据统一接入、元数据管理、数据一致性及平台监控等关键模块的设计思路和技术细节,帮助读者理解和掌握构建高性能数据存储系统的方法。
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
|
2月前
|
存储 分布式计算 大数据
大数据-145 Apache Kudu 架构解读 Master Table 分区 读写
大数据-145 Apache Kudu 架构解读 Master Table 分区 读写
51 0
|
3月前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
56 5
|
3月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
190 9

热门文章

最新文章