博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Percona XtraDB Cluster GCache和Record-Set缓存
阅读量:6594 次
发布时间:2019-06-24

本文共 1448 字,大约阅读时间需要 4 分钟。

在Percona XtraDB集群中,有一个GCache和Record-Set缓存(也可称为事务写集缓存)的概念。如果您正在运行长事务,那么使用这两个缓存通常会造成混淆,因为它们都会导致创建磁盘级文件。本手册介绍了它们的主要区别。

一、记录集缓存(Record-Set Cache)

当您在任何特定节点上运行长时间运行的事务时,它将尝试为其尝试修改的每一行附加一个密钥(密钥是该行的唯一标识符{db,table,pk.columns})。这些信息被缓存在out-write-set中,然后发送给组进行认证。

密钥被缓存在HeapStore中(有page-size=64K和total-size=4MB)。如果事务数据大小超过此限制,则存储将从堆切换到页(其具有page-size=64MB和total-limit=free-space-on-disk)。

所有这些限制都是不可配置的,但每次事务的内存页大小大于4MB可能会由于内存压力而导致事件停止,因此此限制是合理的。当Galera支持大型事务时,这是另一个限制。

同样长时间运行的事务也会生成binlog数据,这些数据也会附加到commit(HeapStore-> FileStore)上的out-write-set。 这些数据可能很重要,因为它是由事务插入/更新/删除的行的二进制日志映像。 wsrep_max_ws_size变量控制这部分写入集的大小。 该阈值不考虑为缓存键和标题分配的大小。

如果FileStore被使用,它将在磁盘上创建一个文件(名称如xxxx_keys和xxxx_data)以存储缓存数据。这些文件一直保存到提交事务,因此事务的生命周期被链接。

当节点完成事务并即将提交时,它将使用这两个文件(如果数据大小足够长以便使用FileStore)生成最终写入集HEADER,并将其发布为集群认证。

执行事务的本地节点也将充当订阅节点,并将通过群集发布机制接收其自己的写入集。这一次,本地节点将尝试将写入集缓存到其GCache中。GCache配置控制GCache保留多少数据。

二、GCache

GCache保存在群集上发布的写入集以进行复制。在GCache中写入集的生命周期不是事务链接的。

当一个JOINER节点需要一个IST时,它将通过这个GCache进行服务(如果可能的话)。

GCache也将创建文件到磁盘。

在任何给定的时间点,本地节点都有两个写入集副本:一个在GCache中,另一个在记录集缓存中(Record-Set Cache)。

例如,让我们INSERT/UPDATE在一个表格中说出200万行,并使用以下模式。

(int , char (100 ), char (100 ) 与 pk (int , char (100 ))

它将在后台创建写入键/数据文件,类似于以下内容:

-rw ------- 1 XXX XXX 67108864年04月11 12:26 0x00000707_data.000000

-rw ------- 1 XXX XXX 67108864年04月11 12:26 0x00000707_data.000001
-rw ------- 1 XXX XXX 67108864年04月11 12:26 0x00000707_data.000002
-rw ------- 1 XXX XXX 67108864年04月11 12:26 0x00000707_keys.000000

转载地址:http://lzjio.baihongyu.com/

你可能感兴趣的文章
React组件: 提取图片颜色
查看>>
3D应用开发中的欧拉角和旋转矩阵
查看>>
爬虫必备技能xpath的用法和实战
查看>>
RxJava2.0的初学者必备教程(九)
查看>>
记一次omi的项目之旅
查看>>
Android API级别、代号、发布时间及平台亮点整理
查看>>
LLDP(链路层发现协议)
查看>>
Ubuntu14 添加程序启动
查看>>
我的友情链接
查看>>
windows网络安全以及常见网络***方式
查看>>
警告 初始化默认驱动器时出错“找不到运行 Active Directory Web 服务的默认服务器。”...
查看>>
JS字符串转换数字
查看>>
centos7-修改主机名
查看>>
面试宝典系列-mysql面试基础题
查看>>
spring data for mongo
查看>>
开启 URL 重写
查看>>
Journey源码分析二:整体启动流程
查看>>
Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
查看>>
七、MySQL中的字符集 - 系统的撸一遍MySQL
查看>>
centos7的php5.4竟然不支持原生的mysql
查看>>