TiKV学习笔记

TiKV学习笔记一、TiKV简介1.1、TiKV概述TiDB的存储用的TiKV,TiKV是基于RocksDB实现了分布式(可水平扩展,支持主从),RocksDB是对单机版LevelDB的封装。TiKV是开源的、分布式、支持事务的VK数据库。TiKV不仅提供了KV的API,且提供了兼容ACID的API。TiKV用Rust语言实现,用采用Raft协议,作为TiDB的存储层,是一个兼容了MySQL协议的分布式HTAP数据库。TiKV保证数据一致性,TiKV基于Rust语言实现了Raft协议,一致性状态存储在Rock

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、TiKV简介

1.1、TiKV概述

TiDB的存储用的TiKV, TiKV是基于RocksDB实现了分布式(可水平扩展,支持主从),RocksDB是对单机版LevelDB的封装。

TiKV是开源的、分布式、支持事务的VK数据库。
TiKV不仅提供了KV的API,且提供了兼容ACID的API。
TiKV用Rust语言实现,用采用Raft协议,作为TiDB的存储层,是一个兼容了MySQL协议的分布式HTAP数据库。

TiKV保证数据一致性,TiKV基于Rust语言实现了Raft协议,一致性状态存储在RocksDB中。

PD (Placement Drive):用来实现auto-sharding,自动化数据迁移。

TiKV将数据按Key划分成大致相等的分区region,每个分区里有n个副本(通常为3个),其中一个副本是leader(提供读写服务)。

1.2、TiKV的主要Features

Geo-Replication(异地数据同步)

TiKV用Raft协议和PD来支持Geo-Replication(一种异地数据同步技术,它可以几乎实时地把GlusterFS的卷(Volume)通过网络同步到异地)

Horizontal scalability(水平扩展)

通过PD和Raft Group,TiKV可以水平扩展,可轻松扩展100+TB的数据。

Consistent distributed transactions(一致的分布式事务)

TiKV支持一致的分布式事务

Coprocessor support

与HBase一样,TiKV实现了coprocessor 框架来支持分布式计算

Cooperates with TiDB

TiKV可以和TiDB一起配合来作为一个可水平扩展的,支持一致性事务,可作为关系型数据库和NoSQL的数据库。

二、TiKV的架构

2.1、APIs

TiKV提供了2中API:

1、Raw:Key-Value API, 以单个Key来保证原子性。
使用场景:不需要分布式事务 或 不需要 MVCC(multi-version concurrency control,多版本并发控制)

2、Transactional:支持ACID的key-value API , 以多个key为单位来保证原子性。
使用场景:需要分布式事务 或 MVCC

2.2、系统架构

在这里插入图片描述
TiKV基于Rust语言,基于Facebook RocksDB和Raft.
设计灵感来自于Google Spanner和HBase。

2.2.1、TiKV实例的架构

在这里插入图片描述

Placement driver (PD)

Placement Driver用来对TiKV做集群管理,他周期性地检查复制约束来在node和region中balance数据和负载,这个过程叫做auto-sharding。

Store

上面架构图中的每个Store其实就是RocksDB,他负责把数据存储到本地磁盘。

Region

Region是Key-value数据的基本单元,每个Region中的数据会被复制到多个nodes上,即一个Raft Group中有多个Replicas。

Node

TiKV的node指集群中的一个物理服务器,可以是一个虚机或容器。
在每个node上,可以由一个或多个Store。Store中存储的数据被划分到多个region中,数据跨region存了多份通过raft协议同步。

当一个node启动后,node、store、region的metadata会记录到Placement Driver中。即每个region和store的状态信息都记录到了PD中。

Transaction model

TiKV的事务模式提供:

  • Snapshot锁隔离机制:如SQL:SELECT … FOR UPDATE
  • 分布式事务的Externally一致

Raft

TiKV实例的数据分布式实现是通过Raft协议。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190147.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深入浅出:hadoop分布式文件存储系统(HDFS)

    深入浅出:hadoop分布式文件存储系统(HDFS)分布式文件存储系统如上图所示,HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;SecondaryNameNode:是一个小弟,分担大哥namenode的一部分工作量;是Na…

    2022年5月10日
    48
  • mysql 符串类型的数字排序(字符串转数字)[通俗易懂]

    mysql 符串类型的数字排序(字符串转数字)[通俗易懂]针对字符串类型的字符排序需要先转换成数字再进行排序1.直接用加法  字符串+0select*fromordersorderby(mark+0)desc2.使用函数CAST(valueastype);CONVERT(value,type);注:这里的type可以为:浮点数:DECIMAL整数:SIGNED无符号整数:UNSIGNEDselect*fromordersorderby…

    2022年5月25日
    38
  • 查看是否安装apache_查找手机应用安装位置

    查看是否安装apache_查找手机应用安装位置如果你是问linux自动安装的APACHE的话,直接使用apachectl -v命令,如果告诉你没有这个方法就可以知道系统没有安装apache,如果已经安装了则显示apache的版本,至于安装目录,使用apachectl -c就可以知道了。

    2026年2月6日
    6
  • pytorch tensorboard使用_铅球是什么体育X项目

    pytorch tensorboard使用_铅球是什么体育X项目目录什么是TensorboardX配置TensorboardX环境要求安装使用pip安装从源码安装使用TensorboardX一些tips什么是TensorboardXTensorboard是TensorFlow的一个附加工具,可以记录训练过程的数字、图像等内容,以方便研究人员观察神经网络训练过程。可是对于PyTorch等其他神经网络训练框架并没有功能像Tensorboard…

    2022年10月11日
    4
  • oracle sequence order_二次序列

    oracle sequence order_二次序列文章目录1概述2语法2.1授权2.2创建序列2.3查询、修改、删除2.4使用序列3扩展3.1cache详解3.2cycle详解3.3常用获取序列的工具包1概述1.序列是什么:整数,一般是指从1开始的正整数2.序列有啥用:自动生成’主键’3.注意事项(1)建议’循环’使用序列(order),避免精度超出报错如:最终序列=当前年份+产生的序列(2)建议不对序列进行排序(noord..

    2022年10月19日
    3
  • PLSQL 使用教程

    PLSQL 使用教程1打开表打开PLSQL点击Objects在下拉列表中选中Myobjects找到Table下级目录中都是数据库的表2查看表的数据选中表,右击点击-查看数据/querydata弹出sql窗口,可以查看数据3查看表结构选中表,右击点击-查看/View…

    2022年5月2日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号