Percona XtraDB Cluster GCache和Record-Set缓存

在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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

【专业技术】8大你不得不知的Android调试工具

1. 查看当前堆栈 1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系 2) 方法: new Exception(“print ...

63613
来自专栏算法修养

Memcached 简单利用和简单了解(Mac的安装和使用)

Memcached 是一种用于分布式应用的一种缓存机制。应用也比较广泛。这里来学习一下。 首先Memcached 是分布式网站架构都需要用到的缓存机制。缓存就是...

3596
来自专栏猿人谷

使用asp调用.net xml web services

(是不是实际上可以用这个办法调用任何xml web services呢?高人答一下) 最近在做一个web services,由我来写文档。为了方便广大asp用户...

2597
来自专栏JavaEdge

视图重定向0 重定向视图 RedirectView1 向重定向目标传递数据2 重定向前缀——redirect:3 重定向前缀——forward:

3008

Web服务器压力测试工具Siege

Siege是一款HTTP压力测试和基准测试的实用工具,可用于在压力条件下对Web服务器的性能进行测量。它的评估依据包括传输数据量、服务器的响应时间、事务处理速率...

2653
来自专栏北京马哥教育

使用 sphinx 制作简洁而又美观的文档

最近需要将API中的doc生成html给前端工程师参考调用。 于是粗率的学习了下sphinx ---- Sphinx 是用 Python 编写的,并且最初是为...

3656
来自专栏张善友的专栏

服务器未能识别 HTTP 标头 SOAPAction 的值

SOAPAction HTTP request header被用来标识SOAP HTTP请求的目的地,其值是个URI地址。SOAP发送并不限制格式、URI特征或...

2846
来自专栏农夫安全

浅谈XXE攻击

前言 现在越来越多主要的web程序被发现和报告存在XXE(XML External Entity attack)漏洞,比如说facebook、paypal等等。...

3436
来自专栏Java帮帮-微信公众号-技术文章全总结

day02.自动化部署高级命令文本【大数据教程】

day02.自动化部署高级命令文本 一、Iptables教程 1. iptables防火墙简介 Iptables也叫netfilter是Linux下自带的一款免...

4556
来自专栏技术博文

Linux操作系统PS命令详细解析

要对系统中进程进行监测控制,用 ps 命令满足你。 /bin/ps ps 是显示瞬间行程的状态,并不动态连续;如果想对进程运行时间监控,应该用 top 工具。 ...

3634

扫码关注云+社区

领取腾讯云代金券