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

目录
相关文章
|
存储 缓存 算法
Go --- GCache缓存官方例子
Go --- GCache缓存官方例子
|
缓存
GoFrame gcache使用实践 | 缓存控制 淘汰策略
gcache模块默认提供的是一个高速的内存缓存,操作效率非常高效,CPU性能损耗在ns纳秒级别。使用简单易上手,非常适合单机应用使用。
256 0
GoFrame gcache使用实践 | 缓存控制 淘汰策略
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
|
1月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
数据的存储--Redis缓存存储(二)
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
74 6
|
1月前
|
缓存 NoSQL 关系型数据库
redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿
本文深入探讨了Redis缓存的相关知识,包括缓存的概念、使用场景、可能出现的问题(缓存预热、缓存穿透、缓存雪崩、缓存击穿)及其解决方案。
175 0
redis和缓存及相关问题和解决办法 什么是缓存预热、缓存穿透、缓存雪崩、缓存击穿
|
7天前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
8天前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
|
16天前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
92 22
|
15天前
|
缓存 NoSQL 中间件
redis高并发缓存中间件总结!
本文档详细介绍了高并发缓存中间件Redis的原理、高级操作及其在电商架构中的应用。通过阿里云的角度,分析了Redis与架构的关系,并展示了无Redis和使用Redis缓存的架构图。文档还涵盖了Redis的基本特性、应用场景、安装部署步骤、配置文件详解、启动和关闭方法、systemctl管理脚本的生成以及日志警告处理等内容。适合初学者和有一定经验的技术人员参考学习。
105 7

热门文章

最新文章