【DB吐槽大会】第4期 - PG 逻辑日志只有全局开关

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 大家好,这是DB吐槽大会,第4期 - PG 逻辑日志只有全局开关

背景



1、产品的问题点

  • PG 逻辑日志只有全局开关

2、问题点背后涉及的技术原理

  • 如果要支持逻辑增量订阅, 必须开启逻辑日志(wal_level=logical), 开启后在wal日志中会写入解析逻辑日志的内容, 而这个开关只能全局设置. (REPLICA IDENTITY=nothing只能控制old value, 不能控制insert造成的logical log)

3、这个问题将影响哪些行业以及业务场景

  • SaaS行业
  • 多地1中心的只需要跨地域共享少部分数据表的场景. 例如政务类业务、多地域部署的游戏、社交业务.

4、会导致什么问题?

  • 开启wal_level=logical后, 日志量会有较大增加. 如果订阅的表比较少, 实际有用的logical日志占比较少, 造成较大浪费.
  • 如果订阅的表比较少, 在wal sender端解析时依旧需要解析并过滤不需要的wal, 所以会造成wal的读浪费, CPU解析浪费.

5、业务上应该如何避免这个坑

  • 业务设计时把需要共享的少部分表拆出, 使用单独的PG实例.

6、业务上避免这个坑牺牲了什么, 会引入什么新的问题

  • 增加了复杂度, 需要重新设计实例, 如果时已有业务, 还需要考虑表于表之间是否有依赖关系, 比较复杂.

7、数据库未来产品迭代如何修复这个坑

  • 等内核层支持表级的wal logical开关?



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
Kubernetes 关系型数据库 API
实时计算 Flink版产品使用问题之连接的PG表长时间无数据写入,WAL日志持续增长,该如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
监控
若依修改-----其他功能,包括参数设置,通知公告,日志管理,验证码控制开关在参数设置里,若依的注册页面是隐藏的,在src的login.vue的97行注册开发,修改成true,通知公告,促进组织内部信
若依修改-----其他功能,包括参数设置,通知公告,日志管理,验证码控制开关在参数设置里,若依的注册页面是隐藏的,在src的login.vue的97行注册开发,修改成true,通知公告,促进组织内部信
|
关系型数据库 MySQL
日志开始恢复后8小时,连接会断开 Aborted connection 4 to db
从日志中观察到,日志开始恢复后8小时,连接会断开
169 0
|
IDE Java API
Gradle | 全局配置、Log开关控制、Build Variant、meta-data等配置
Gradle是一个先进的构建系统,也是一个允许通过插件创建自定义构建逻辑先进的构建工具。
462 0
|
存储 文件存储 Python
Python 教程:日志功能与处理逻辑
在应用程序执行过程中,我们希望通过规范格式输出程序执行的详细信息,这时我们需要用到日志功能。在 Python 语言中,有个內建模块 logging 能够很好的实现日志功能。整体来说,`logging` 配置可以分成 4 个部分: `Loggers`、`Handlers`、`Filters` 和 `Formatters`。接下来我们详细探讨其处理逻辑和配置方法。
162 0
|
SQL Oracle 关系型数据库
【DB吐槽大会】第39期 - PG 物化视图不支持基于log的增量刷新
大家好,这里是DB吐槽大会,第39期 - PG 物化视图不支持基于log的增量刷新
|
SQL 关系型数据库 Java
【DB吐槽大会】第16期 - PG Standby不支持解析逻辑日志
大家好,这里是DB吐槽大会,第16期 - PG Standby不支持解析逻辑日志
|
16天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
137 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
234 3
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1638 14
下一篇
无影云桌面